import os
for nome in os.listdir('.'):
novo_nome = 'MEET_' + nome
os.rename(nome, novo_nome)
print 'OK'
quarta-feira, dezembro 12, 2007
Assinar:
Postar comentários (Atom)
Linguagem de programação Python, algumas dicas rápidas. E novidades sobre tecnologia.
10 comentários:
O mesmo em shell script...
$ for i in $(ls); do mv $i "MEET_$i"; done
Gosto pra caramba de shell script, mas a sua solução em python é extremamente legível e multiplataforma :)
Seu blog está devidamente cadastrado no meu google reader, assim vejo todas as suas dicas. Valeu!
É Arthur, realmente bem simples, legal ver soluções em outras linguagens. Fiz um minicurso de shell script uma vez, da pra fazer muita coisa no Linux.
Valeu voyeg3r, também acompanho o vivaotux, tem umas dicas legais.
No Windows eu não consegui fazer funcionar.
Passei "D:/Fotos/teste/" como path do os.listdir, mas ele acusa erro é na linha os.rename(name, new_name).
O traceback:
WindowsError: [Error 2] O sistema não pode encontrar o arquivo especificado
Jader, não uso Windows, não sei se existe diferenças com relação ao módulo os. Mas como eu fiz aqui com o diretório atual ('.'), ele achava nome no diretorio atual.
Como você tá passando outro diretório, tenta renomear passando o caminho completo, como:
os.rename("C:/fotos/teste/"+nome, "C:/fotos/teste/"+novo_nome)
Igor, funcionou. ;)
Isso pode ser realmente muito útil, principalmente pra casos mais complexos, onde temos que usar RegExp's.
Vou começar a brincar com isso agora mesmo. :P
Um dos problemas de renomear é a codificação, encontrei um artigo legal
aqui.
o código é muito simples como tudo em python:
$ python
>>> import os
>>> for i in os.listdir('.'):
... os.rename(i, i.decode('iso8859-1'))
Andei pesquisando um script que fizesse o mesmo de forma recursiva, ou seja, a pasta e todo o seu conteúdo, publiquei no meu wiki algo sobre o tema e gostaria que você desse uma olhada:
http://linuxdicas.wikispaces.com/iso2utf
Estou aprendendo Python, e essa dica sua foi uma tremenda mão na roda, não implementei seu código da mesma maneira, mas me ofereceu a ideia que eu tava precisando, usando o método do módulo OS do jeitinho que eu precisava. Obrigado!
Obrigado!!
Apesar de ser uma dica antiga, me ajudou!!
Postar um comentário