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