RenameFile
Este script Python renomeia os arquivos seguindo um padrão e/ou deixa tudo minúsculo e substitui os espaços por underline. No renomeio também pode existir prefixo e/ou sufixo determinado pelo usuário. Ideal para empresas de criação de sites (eu mesmo uso em uma :D) Ele conta com uma interface interativa, ativada através da opção '-i' e outras mais automatizadas... O código está meio grande, mas daqui algum tempo colocarei cada operação em sua devida function
Código
1 import os
2 import string
3 import sys
4
5 try:
6 if sys.argv[1] == '-h':
7 print "Ajuda do programa:\nSintaxe: rename.py [argumento] [diretorio] [prefixo/sufixo] [sufixo]\n\
8 \n-h\tMostra essa ajuda\n\
9 \n-i\tModo Interativo, ideal para a primeira vez de uso\n\
10 \n-p\tRenomeia automaticamente todos os arquivos do diretorio especificado \n\tusando o prefixo indicado (numericamente sequencial)\n\
11 \n-s\tRenomeia automaticamente todos os arquivos do diretorio especificado \n\tusando o sufixo indicado (numericamente sequencial)\n\
12 \n-a\tRenomeia automaticamente todos os arquivos do diretorio especificado \n\tusando prefixo e sufixo indicados (numericamente sequencial)\n\
13 \n-e\tSubstitui os espacos por underlines e deixa tudo minusculo nos arquivos\n\tdo diretorio especificado"
14
15 elif sys.argv[1] == '-i':
16 diretorio = raw_input("Digite o diretorio onde serao feita as alteracoes: ")
17
18 while not os.access(diretorio, 1):
19 print 'O diretorio nao existe! Tente novamente'
20 diretorio = raw_input("\nDigite o diretorio onde serao feita as alteracoes: ")
21 else:
22 os.chdir(diretorio)
23
24 print "Escolha as opcoes abaixo:\n\n\
25 1. Substituir espacos por underlines e deixar tudo minusculo\n\
26 2. Renomear arquivos sequencialmente\n\n"
27
28 opcao = raw_input("Qual opcao ira ser, newbaboy ? ")
29
30 if opcao == '1':
31 print "Os seguintes arquivos serao modificados: \n"
32 print os.listdir(diretorio)
33 confirm = raw_input("Deseja prosseguir ? S/N: ")
34 print os.getcwd()
35 if confirm == 'S' or 's':
36 try:
37 for arquivo in os.listdir(diretorio):
38 x = arquivo
39 os.rename(x,string.lower(x))
40 for arquivo in os.listdir(diretorio):
41 x = arquivo
42 s = string.split(x)
43 z = string.join(s,'_')
44 os.rename(x,z)
45 except OSError:
46 pass
47 print "Operacao realizada com sucesso! Os arquivos modificados ficaram assim:\n"
48 print os.listdir(diretorio)
49
50
51 elif opcao == '2':
52 y = 1
53 prefixo = raw_input("Coloque prefixo, se houver. Enter para prosseguir ")
54 sufixo = raw_input("Coloque sufixo se houver. Enter para prosseguir ")
55 for arquivo in os.listdir(diretorio):
56 x = arquivo
57 s = string.split(x,'.')
58 if prefixo and sufixo:
59 os.rename(x,prefixo+str(y)+sufixo+'.'+s[1])
60 y = y + 1
61 elif prefixo:
62 os.rename(x,prefixo+str(y)+'.'+s[1])
63 y = y + 1
64 elif sufixo:
65 os.rename(x,str(y)+sufixo+'.'+s[1])
66 y = y + 1
67 else:
68 os.rename(x,str(y)+'.'+s[1])
69 y = y + 1
70
71 elif sys.argv[1] == '-p' and sys.argv[2]:
72 y = 1
73 try:
74 prefixo = sys.argv[3]
75 diretorio = sys.argv[2]
76 os.chdir(diretorio)
77 for arquivo in os.listdir(diretorio):
78 x = arquivo
79 s = string.split(x,'.')
80 os.rename(x,prefixo+str(y)+'.'+s[1])
81 y = y + 1
82 print "\nOperacao realizada com sucesso!"
83 except IndexError:
84 print "\nPrefixo invalido"
85
86 elif sys.argv[1] == '-s' and sys.argv[2]:
87 y = 1
88 try:
89 sufixo = sys.argv[3]
90 diretorio = sys.argv[2]
91 os.chdir(diretorio)
92 for arquivo in os.listdir(diretorio):
93 x = arquivo
94 s = string.split(x,'.')
95 os.rename(x,str(y)+sufixo+'.'+s[1])
96 y = y + 1
97 print "\nOperacao realizada com sucesso!"
98 except IndexError:
99 print "\nSufixo invalido"
100
101 elif sys.argv[1] == '-a' and sys.argv[2]:
102 y = 1
103 try:
104 diretorio = sys.argv[2]
105 prefixo = sys.argv[3]
106 sufixo = sys.argv[4]
107 os.chdir(diretorio)
108 for arquivo in os.listdir(diretorio):
109 x = arquivo
110 s = string.split(x,'.')
111 os.rename(x,prefixo+str(y)+sufixo+'.'+s[1])
112 y = y + 1
113 print "\nOperacao realizada com sucesso!"
114 except IndexError:
115 print "\nTem certeza que digitou ambos ? (Prefixo e sufixo)"
116
117 except IndexError:
118 print "\nO argumento -h mostra a ajuda do programa"
Exemplo de uso
Queres mesmo saber ? python rename.py -h Quem quiser melhorar algo entrar em contato comigo: exista@gmail.com
Volta para CookBook.
Nicholas Amorim Santos (Marshall)