我os.listdir()
在一个目录上做,它返回一个像这样的列表:
[u'Somefile.gif', u'SomeDirectory', u'SomeJPEG.jpeg']
你是干什么用的?在我的搜索中,我听说过:
- 是一个固定的错误。
- 表示列出的项目是 unicode。
我不相信这两个都是真的。
在 Python2 中,u
inu'...'
表示对象是 unicode。
从文档:
在 2.3 版更改: 在 Windows NT/2k/XP 和 Unix 上,如果 path 是一个 Unicode 对象,结果将是一个 Unicode 对象列表。无法解码的文件名仍将作为字符串对象返回。
也许您正在os.listdir
使用 unicode 参数进行调用。例如:
In [51]: import os
In [52]: os.listdir('.')
Out[52]: ['a', 'a.ps']
In [53]: os.listdir(u'.')
Out[53]: [u'a', u'a.ps']
The u
prefix on your str
s let you know that these are in fact unicode strings. Calling str
on them will turn the unicode strings into "normal" python strings. However, this is only that simple if your file/directory names are made up of strictly ascii characters.
In [2]: L
Out[2]: [u'asdf', u'asdf', u'aasf']
In [3]: [str(i) for i in L]
Out[3]: ['asdf', 'asdf', 'aasf']
Hope this helps