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 while not os.access(sys.argv[2],1):
7 print "\nO diretorio especificado nao existe, tente novamente"
8 break
9 if sys.argv[1] == '-h':
10 print "Ajuda do programa:\nSintaxe: rename.py [argumento] [diretorio] [prefixo/sufixo] [sufixo]\n\
11 \n-h\tMostra essa ajuda\n\
12 \n-i\tModo Interativo, ideal para a primeira vez de uso\n\
13 \n-p\tRenomeia automaticamente todos os arquivos do diretorio especificado \n\tusando o prefixo indicado (numericamente sequencial)\n\
14 \n-s\tRenomeia automaticamente todos os arquivos do diretorio especificado \n\tusando o sufixo indicado (numericamente sequencial)\n\
15 \n-a\tRenomeia automaticamente todos os arquivos do diretorio especificado \n\tusando prefixo e sufixo indicados (numericamente sequencial)\n\
16 \n-e\tSubstitui os espacos por underlines e deixa tudo minusculo nos arquivos\n\tdo diretorio especificado"
17
18 elif sys.argv[1] == '-i':
19 diretorio = raw_input("Digite o diretorio onde serao feita as alteracoes: ")
20
21 while not os.access(diretorio, 1):
22 print 'O diretorio nao existe! Tente novamente'
23 diretorio = raw_input("\nDigite o diretorio onde serao feita as alteracoes: ")
24 else:
25 os.chdir(diretorio)
26
27 print "Escolha as opcoes abaixo:\n\n\
28 1. Substituir espacos por underlines e deixar tudo minusculo\n\
29 2. Renomear arquivos sequencialmente\n\n"
30
31 opcao = raw_input("Qual opcao ira ser, newbaboy ? ")
32
33 if opcao == '1':
34 print "Os seguintes arquivos serao modificados: \n"
35 print os.listdir(diretorio)
36 confirm = raw_input("Deseja prosseguir ? S/N: ")
37 print os.getcwd()
38 if confirm == 'S' or 's':
39 try:
40 for arquivo in os.listdir(diretorio):
41 x = arquivo
42 os.rename(x,string.lower(x))
43 for arquivo in os.listdir(diretorio):
44 x = arquivo
45 s = string.split(x)
46 z = string.join(s,'_')
47 os.rename(x,z)
48 except OSError:
49 pass
50 print "Operacao realizada com sucesso! Os arquivos modificados ficaram assim:\n"
51 print os.listdir(diretorio)
52
53
54 elif opcao == '2':
55 y = 1
56 prefixo = raw_input("Coloque prefixo, se houver. Enter para prosseguir ")
57 sufixo = raw_input("Coloque sufixo se houver. Enter para prosseguir ")
58 for arquivo in os.listdir(diretorio):
59 x = arquivo
60 s = string.split(x,'.')
61 if prefixo and sufixo:
62 os.rename(x,prefixo+str(y)+sufixo+'.'+s[1])
63 y = y + 1
64 elif prefixo:
65 os.rename(x,prefixo+str(y)+'.'+s[1])
66 y = y + 1
67 elif sufixo:
68 os.rename(x,str(y)+sufixo+'.'+s[1])
69 y = y + 1
70 else:
71 os.rename(x,str(y)+'.'+s[1])
72 y = y + 1
73
74 elif sys.argv[1] == '-p' and sys.argv[2]:
75 y = 1
76 try:
77 prefixo = sys.argv[3]
78 diretorio = sys.argv[2]
79 os.chdir(diretorio)
80 for arquivo in os.listdir(diretorio):
81 x = arquivo
82 s = string.split(x,'.')
83 os.rename(x,prefixo+str(y)+'.'+s[1])
84 y = y + 1
85 print "\nOperacao realizada com sucesso!"
86 except IndexError:
87 print "\nPrefixo invalido"
88
89 elif sys.argv[1] == '-s' and sys.argv[2]:
90 y = 1
91 try:
92 sufixo = sys.argv[3]
93 diretorio = sys.argv[2]
94 os.chdir(diretorio)
95 for arquivo in os.listdir(diretorio):
96 x = arquivo
97 s = string.split(x,'.')
98 os.rename(x,str(y)+sufixo+'.'+s[1])
99 y = y + 1
100 print "\nOperacao realizada com sucesso!"
101 except IndexError:
102 print "\nSufixo invalido"
103
104 elif sys.argv[1] == '-a' and sys.argv[2]:
105 y = 1
106 try:
107 diretorio = sys.argv[2]
108 prefixo = sys.argv[3]
109 sufixo = sys.argv[4]
110 os.chdir(diretorio)
111 for arquivo in os.listdir(diretorio):
112 x = arquivo
113 s = string.split(x,'.')
114 os.rename(x,prefixo+str(y)+sufixo+'.'+s[1])
115 y = y + 1
116 print "\nOperacao realizada com sucesso!"
117 except IndexError:
118 print "\nTem certeza que digitou ambos ? (Prefixo e sufixo)"
119
120 except IndexError:
121 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)