Ich bin auf Python 2.6 für Windows.Python-Dateinamen in Unicode konvertieren
Ich benutze os.walk um einen Dateibaum zu lesen. Dateien können Nicht-7-Bit-Zeichen (z. B. "ae") in ihren Dateinamen enthalten. Diese sind in der internen String-Darstellung von Pythons kodiert.
Ich verarbeite diese Dateinamen mit Python-Bibliotheksfunktionen und das scheitert aufgrund falscher Codierung.
Wie kann ich diese Dateinamen in richtige (Unicode?) Python-Strings konvertieren?
Ich habe eine Datei "d: \ utest \ ü.txt". hat den Pfad als Unicode-Passing nicht:
>>> list(os.walk('d:\\utest'))
[('d:\\utest', [], ['\xfc.txt'])]
>>> list(os.walk(u'd:\\utest'))
[(u'd:\\utest', [], [u'\xfc.txt'])]
funktioniert es: an Ihrem Ausgang Schauen !! Sowohl der Verzeichnisname u'd: \\ utest 'als auch der Dateiname u' \ xfc.txt 'werden als Unicode-Objekte u'blahblah' anstelle der vorherigen str-Objekte 'blahblah' dargestellt. Vielleicht verwirrend ist die Tatsache, dass der Umlaut mit \ xfc dargestellt wird, aber das ist bei str wie bei unicode gleich und hat nichts mit dem str/unicode Problem zu tun. –
Vielleicht müssen Sie verstärken "scheitert aufgrund falscher Codierung" ... Was scheitert? Wie? Zeigt die vollständige Traceback- und Fehlermeldung an. –