Windows下Python中的文件名格式



我有两个不同的文件,名为:

'╠.txt'和"¦.txt'

这样简单的代码:

files = os.listdir('E:pubprivatedesktop')
for f in files:
    print f, repr(f), type (f)

将返回

¦.txt 'xa6.txt' <type 'str'>
¦.txt 'xa6.txt' <type 'str'>

我不明白为什么我得到的代码0xA6╠字符而不是OxCC。我一直在尝试用编码-解码的方法玩阿龙,但没有成功。我注意到sys.getfilesystemencoding()设置为mbcs,但我无法像cp437那样更改它。

非常感谢您的帮助。谢谢

您必须将unicode字符串传递给os.listdir,Python将返回unicode文件名:

# a string that is unicode+raw (escapes )
path = ur"E:pubprivatedesktop"
print os.listdir(path)
# [u'xa6.txt', u'u2560.txt']

WindowsNT实际上使用unicode作为文件名,但我猜Python在传递编码路径名时会尝试对其进行编码。

相关内容

  • 没有找到相关文章

最新更新