我的问题与Python的os.path无法处理希伯来文件名类似,但我不知道需要重命名的文件的原始编码(不像其他帖子,他知道原本是希伯来语)。我为客户进行数据恢复并将文件复制到我的XP SP3机器上,一些文件名用“?”替换/表示无效字符。我试图使用Python的
os.rename
重命名文件,因为我知道它支持unicode,但当我告诉Python重命名文件时,似乎无法向Windows API传递有效的文件名。
i.e.:
>>> 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 /英语编码。
是否有一种处理这些重命名的方法,而不知道原始语言?
Don't Be Them.mp3
(不包括反引号),我认为你并没有复制粘贴,而是即兴发挥。 - tzot