我在Python 2.6 for Windows上。將python文件名轉換爲unicode
我使用os.walk來讀取文件樹。文件的文件名可能包含非7位字符(例如德語「ae」)。這些以Pythons內部字符串表示形式編碼。
我正在使用Python庫函數處理這些文件名,並且由於編碼錯誤而失敗。
如何將這些文件名轉換爲正確的(unicode?)python字符串?
我有一個文件「d:\ utest \ü.txt」。傳遞路徑爲Unicode不工作:
>>> list(os.walk('d:\\utest'))
[('d:\\utest', [], ['\xfc.txt'])]
>>> list(os.walk(u'd:\\utest'))
[(u'd:\\utest', [], [u'\xfc.txt'])]
它的工作:看看你輸出!目錄名稱u'd:\\ utest'和文件名稱u'\ xfc.txt'都以unicode對象u'blahblah'的形式出現,而不是以前的str對象'blahblah'。也許u-with-umlaut表示爲\ xfc的事實讓你感到驚訝,但這與str和unicode一樣,並且與str/unicode問題無關。 – 2009-06-27 10:42:23
也許你需要放大「由於編碼錯誤而失敗」......什麼失敗了?怎麼樣?顯示完整的回溯和錯誤消息。 – 2009-06-27 12:07:56