我正在对目录执行os.listdir()
,并返回如下列表:
[u'Somefile.gif', u'SomeDirectory', u'SomeJPEG.jpeg']
你有什么用?在我的搜索中,我听说过这个:
我不相信这些都是真的。
答案 0 :(得分:5)
在Python2中,u
中的u'...'
表示对象是unicode。
在版本2.3中更改:在Windows NT / 2k / XP和Unix上,如果path是a Unicode对象,结果将是一个Unicode对象列表。 不可解码的文件名仍将作为字符串对象返回。
也许您使用unicode参数调用os.listdir
。例如:
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']
答案 1 :(得分:1)
u
上的str
前缀让您知道这些实际上是unicode字符串。在它们上调用str
会将unicode字符串转换为“普通”python字符串。但是,如果您的文件/目录名称由严格的ascii字符组成,那就很简单了。
In [2]: L
Out[2]: [u'asdf', u'asdf', u'aasf']
In [3]: [str(i) for i in L]
Out[3]: ['asdf', 'asdf', 'aasf']
希望这有帮助