4

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

4

2 回答 2

5

如果传递os.listdirunicode 路径,则os.listdir返回 unicode:

os.listdir(u'.')

文档

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

于 2013-04-22T02:01:36.280 回答
4

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

>>> print(u"Hello WorlЪ.py".encode("unicode_escape"))
Hello Worl\u042a.py
于 2013-04-22T02:07:55.937 回答