问问题
404 次
2 回答
1
尝试将 a 传递unicode
给os.listdir
:
folder = u"emails"
b = os.listdir(folder)
这样做将导致os.listdir
返回 unicodes 列表而不是str
s。
不幸的是,我对此想得越多,我就越不明白为什么会这样。每个文件系统最终都使用某种编码将其文件名存储在字节中。例如 HDF+ 以UTF-16 存储文件名。os.listdir
因此,如果可以最容易地返回这些原始字节而不会掺假,那将是有意义的。但相反,在这种情况下,它看起来os.listdir
可以返回 unadulterated unicode
,但不是 unadulterated 字节。
如果有人能解释这个谜,我将不胜感激。
于 2014-05-02T01:36:59.450 回答
1
这些文件是来自 Mac Roman 编码(大概是 MacOS 使用的),还是 Mac OS X 使用的 UTF-8 的 NFKD 标准形式?
Unicode 范式的概念是每个程序员都应该熟悉的……但很少有人知道。不过,我不能告诉你关于 Python 你还需要知道什么。
于 2014-05-02T11:01:01.833 回答