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