2136
Comentário:
|
5092
|
Deleções são marcadas assim. | Adições são marcadas assim. |
Linha 2: | Linha 2: |
= Receita: RenameFile = | = RenameFile = |
Linha 5: | Linha 5: |
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 :) | |
Linha 10: | Linha 11: |
Linha 13: | Linha 13: |
import sys | |
Linha 14: | Linha 15: |
diretorio = raw_input("Digite o diretorio onde serao feita as alteracoes: ") | try: if sys.argv[1] == '-h': print "Ajuda do programa:\nSintaxe: rename.py [argumento] [diretorio] [prefixo/sufixo] [sufixo]\n\ \n-h\tMostra essa ajuda\n\ \n-i\tModo Interativo, ideal para a primeira vez de uso\n\ \n-p\tRenomeia automaticamente todos os arquivos do diretorio especificado \n\tusando o prefixo indicado (numericamente sequencial)\n\ \n-s\tRenomeia automaticamente todos os arquivos do diretorio especificado \n\tusando o sufixo indicado (numericamente sequencial)\n\ \n-a\tRenomeia automaticamente todos os arquivos do diretorio especificado \n\tusando prefixo e sufixo indicados (numericamente sequencial)\n\ \n-e\tSubstitui os espacos por underlines e deixa tudo minusculo nos arquivos\n\tdo diretorio especificado" |
Linha 16: | Linha 25: |
while not os.access(diretorio, 1): print 'O diretorio nao existe! Tente novamente' diretorio = raw_input("\nDigite o diretorio onde serao feita as alteracoes: ") else: os.chdir(diretorio) |
elif sys.argv[1] == '-i': diretorio = raw_input("Digite o diretorio onde serao feita as alteracoes: ") |
Linha 22: | Linha 28: |
print "Escolha as opcoes abaixo:\n\n\ 1. Substituir espacos por underlines e deixar tudo minusculo\n\ 2. Renomear arquivos sequencialmente\n\n" opcao = raw_input("Qual opcao ira ser, newbaboy ? ") if opcao == '1': print "Os seguintes arquivos serao modificados: \n" print os.listdir(diretorio) confirm = raw_input("Deseja prosseguir ? S/N: ") |
while not os.access(diretorio, 1): print 'O diretorio nao existe! Tente novamente' diretorio = raw_input("\nDigite o diretorio onde serao feita as alteracoes: ") else: os.chdir(diretorio) print "Escolha as opcoes abaixo:\n\n\ 1. Substituir espacos por underlines e deixar tudo minusculo\n\ 2. Renomear arquivos sequencialmente\n\n" opcao = raw_input("Qual opcao ira ser, newbaboy ? ") if opcao == '1': print "Os seguintes arquivos serao modificados: \n" print os.listdir(diretorio) confirm = raw_input("Deseja prosseguir ? S/N: ") print os.getcwd() if confirm == 'S' or 's': try: for arquivo in os.listdir(diretorio): x = arquivo os.rename(x,string.lower(x)) for arquivo in os.listdir(diretorio): x = arquivo s = string.split(x) z = string.join(s,'_') os.rename(x,z) except OSError: pass print "Operacao realizada com sucesso! Os arquivos modificados ficaram assim:\n" print os.listdir(diretorio) elif opcao == '2': y = 1 prefixo = raw_input("Coloque prefixo, se houver. Enter para prosseguir ") sufixo = raw_input("Coloque sufixo se houver. Enter para prosseguir ") for arquivo in os.listdir(diretorio): x = arquivo s = string.split(x,'.') if prefixo and sufixo: os.rename(x,prefixo+str(y)+sufixo+'.'+s[1]) y = y + 1 elif prefixo: os.rename(x,prefixo+str(y)+'.'+s[1]) y = y + 1 elif sufixo: os.rename(x,str(y)+sufixo+'.'+s[1]) y = y + 1 else: os.rename(x,str(y)+'.'+s[1]) y = y + 1 |
Linha 33: | Linha 81: |
if confirm == 'S' or 's': for arquivo in os.listdir(diretorio): x = arquivo os.rename(x,string.lower(x)) s = string.split(x) z = string.join(s,'_') os.rename(x,z) print "Operacao realizada com sucesso! Os arquivos modificados ficaram assim:\n" print os.listdir(diretorio) elif opcao == '2': y = 1 prefixo = raw_input("Coloque prefixo, se houver. Enter para prosseguir ") sufixo = raw_input("Coloque sufixo se houver. Enter para prosseguir ") for arquivo in os.listdir(diretorio): x = arquivo s = string.split(x,'.') if prefixo and sufixo: os.rename(x,prefixo+str(y)+sufixo+'.'+s[1]) y = y + 1 elif prefixo: os.rename(x,prefixo+str(y)+'.'+s[1]) y = y + 1 elif sufixo: os.rename(x,str(y)+sufixo+'.'+s[1]) y = y + 1 else: os.rename(x,str(y)+'.'+s[1]) y = y + 1 |
elif sys.argv[1] == '-p' and sys.argv[2]: y = 1 try: prefixo = sys.argv[3] diretorio = sys.argv[2] os.chdir(diretorio) for arquivo in os.listdir(diretorio): x = arquivo s = string.split(x,'.') os.rename(x,prefixo+str(y)+'.'+s[1]) y = y + 1 print "\nOperacao realizada com sucesso!" except IndexError: print "\nPrefixo invalido" elif sys.argv[1] == '-s' and sys.argv[2]: y = 1 try: sufixo = sys.argv[3] diretorio = sys.argv[2] os.chdir(diretorio) for arquivo in os.listdir(diretorio): x = arquivo s = string.split(x,'.') os.rename(x,str(y)+sufixo+'.'+s[1]) y = y + 1 print "\nOperacao realizada com sucesso!" except IndexError: print "\nSufixo invalido" elif sys.argv[1] == '-a' and sys.argv[2]: y = 1 try: diretorio = sys.argv[2] prefixo = sys.argv[3] sufixo = sys.argv[4] os.chdir(diretorio) for arquivo in os.listdir(diretorio): x = arquivo s = string.split(x,'.') os.rename(x,prefixo+str(y)+sufixo+'.'+s[1]) y = y + 1 print "\nOperacao realizada com sucesso!" except IndexError: print "\nTem certeza que digitou ambos ? (Prefixo e sufixo)" except IndexError: print "\nO argumento -h mostra a ajuda do programa" |
Linha 67: | Linha 133: |
{{{ #!python Não tem mistério... é só usar, ele é auto-explicativo. :) }}} |
Queres mesmo saber ? python rename.py -h :) Quem quiser melhorar algo entrar em contato comigo: exista@gmail.com |
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)