os.listdir正在删除字符重音

时间:2014-02-06 20:43:27

标签: python windows python-2.7 unicode python-2.6

在Windows文件资源管理器中

创建一个新的txt文件名Ń.txt(注意N上的重音)。

按住shift并右键单击您创建Ń.txt的文件夹并在此处选择打开命令窗口(或者打开cmd.exe并cd进入创建文件的目录

运行python终端

print os.listdir(".")  #note that the file is displayed as "N.txt"
print map(os.path.exists,os.listdir(".")) #note the file doesnt exists???

我尝试了很多解码,但是os.listdir根本没有返回实际文件名的字节串...所以编码/解码不正确的字节仍然是不正确的字节......

1 个答案:

答案 0 :(得分:5)

在此之前使用u

>>> print os.listdir(u".")
[u'\u0143.txt']
>>> print map(os.path.exists,os.listdir(u"."))
[True]

os.listdir(path)

  

在版本2.3中更改:在Windows NT / 2k / XP和Unix上,如果路径是    Unicode对象,结果将是 Unicode对象的列表。   不可解码的文件名仍会以字符串对象的形式返回。