Nomes de arquivos e codificação
Dica publicada em Python / Miscelânea
Nomes de arquivos e codificação
Copiando arquivos do Windows para o Linux tive problemas. Dessa forma, o Exaile (http://www.exaile.org/) não conseguia importar alguns arquivos MP3. O problema acontecia porque o nome dos arquivos estavam em ISO8859-1.
A solução foi executar alguns comandos em python:
$ python
>>> import os
>>> for i in os.listdir('.'):
... os.rename(i, i.decode('iso8859-1'))
O "os.listdir('.')" lista dodos os arquivos do diretório atual. O "os.rename" renomeia o arquivo, decodificando o nome.
Lembrando que isso renomeia todos os arquivos, não apenas os com nome em ISO8859-1, portanto, cuidado.
A solução foi executar alguns comandos em python:
$ python
>>> import os
>>> for i in os.listdir('.'):
... os.rename(i, i.decode('iso8859-1'))
O "os.listdir('.')" lista dodos os arquivos do diretório atual. O "os.rename" renomeia o arquivo, decodificando o nome.
Lembrando que isso renomeia todos os arquivos, não apenas os com nome em ISO8859-1, portanto, cuidado.
Mas aqui não deu certo. Saiu o seguinte erro:
>>> import os
>>> for i in os.listdir('.'):
... os.rename(i, i.decode('iso8859-1'))
File "<stdin>", line 2
os.rename(i, i.decode('iso8859-1'))
^
IndentationError: expected an indented block