在Windows XP上使用Python 2.6.5,我正在通过调用os.stat来处理文件目录以获取它们的大小。当脚本到达特定文件时,该脚本恰好在名称中嵌入了非ASCII字符。抛出的异常是os.stat找不到指定的文件。我知道该文件存在,因为我可以在iTunes或VLC媒体播放器中播放。
相关文件的名称是
1-02 Só Danço Samba (Jazz Samba).m4a
如果没有显示字符,则字符串为
'1-02 So\xb4 Danc\xb8o Samba (Jazz Samba).m4a'
我是否应该或可以做些什么来使os.stat接受名称?顺便说一下,尝试在python中打开文件也失败了。
答案 0 :(得分:1)
尝试在python文件的顶部插入行# coding=UTF-8
(正如Philipp指出的那样,只会对脚本中的unicode产生影响),并确保将文件名存储为unicode而不是str
测试以下内容:
# coding=UTF-8
import os
fname = u'/temp/1-02 Só Danço Samba (Jazz Samba).m4a'
print(os.stat(fname))