Моя проблема похожа на os.path Python, заглушающий имена файлов на иврите
однако, я не знаю исходную кодировку имени файла, которое мне нужно переименовать (в отличие от другого поста, он знал, что это был иврит).
Я делал восстановление данных для клиента и копировал файлы на мой компьютер с XP SP3,
и некоторые имена файлов имеют "?" замена / представление недопустимых символов.
Я пытался использовать Python для os.rename
файлов, поскольку я знаю, что он поддерживает юникод, однако, когда я говорю python о переименовании файлов, кажется, что он не может передать действительное имя файла обратно в Windows API.
т.е:.
>>> os.chdir(r'F:\recovery\My Music')
>>> os.listdir(u'.')
[u'Don?t Be Them.mp3', u'That?s A Soldier.mp3']
>>> blah=os.listdir(u'.')
>>> blah[0]
Don?t Be Them.mp3
>>> os.rename(blah[0],'dont be them.mp3')
Traceback (most recent call last):
File "<pyshell#6>", line 1, in <module>
os.rename(blah[0],'dont be them.mp3')
WindowsError: [Error 123] The filename, directory name, or
volume label syntax is incorrect
Я использую Python 2.6 в Win XP SP3 с любой кодировкой, стандартной для XP / US.
Есть ли способ обработать эти переименования, не зная языка оригинала?