2013-04-22 75 views
4

我想找到一個函數,使用os.listdir()函數(或任何其他方法)訪問目錄,並返回該目錄中的所有文件名,但將非ASCII字符轉換爲他們的unicode格式。例如,如果我有文件Hello WorlЪ.py,我希望函數返回Hello Worl\u042a.py或其他等效內容。任何幫助表示讚賞。文件名Python的問題

回答

5

如果傳遞os.listdir unicode的路徑,然後os.listdir回報的Unicode:

os.listdir(u'.') 

the docs

改變在2.3版本:在Windows NT/2K/XP和Unix上,如果路徑是一個 Unicode對象,結果將是一個Unicode對象列表。 無法解析的文件名仍將作爲字符串對象返回。

+0

謝謝@unutbu。這有點調整。 – gadmaget 2013-04-22 02:10:33

4

str.encode("unicode_escape")將按照您所描述的方式對字符串進行編碼。

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