文件名的Python问题

时间:2013-04-22 01:53:43

标签: python unicode directory

我想找到一个使用os.listdir()函数(或任何其他方法)访问目录的函数,并返回该目录中的所有文件名,但将非ASCII字符转换为其unicode格式。例如,如果我有文件Hello WorlЪ.py,我希望函数返回Hello Worl\u042a.py或类似的东西。任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:5)

如果您传递os.listdir一个unicode路径,那么os.listdir将返回unicode:

os.listdir(u'.')

来自the docs

  

在版本2.3中更改:在Windows NT / 2k / XP和Unix上,如果path是a   Unicode对象,结果将是一个Unicode对象列表。   不可解码的文件名仍将作为字符串对象返回。

答案 1 :(得分:4)

str.encode("unicode_escape")将按照您描述的方式对字符串进行编码。

>>> print(u"Hello WorlЪ.py".encode("unicode_escape"))
Hello Worl\u042a.py