Sono su Python 2.6 per Windows.Converti nomi di file python in Unicode
Io uso os.walk per leggere un albero di file. I file possono avere caratteri non a 7 bit (tedesco "ae" per esempio) nei loro nomi di file. Questi sono codificati nella rappresentazione di stringa interna Pythons.
Sto elaborando questi nomi di file con le funzioni della libreria Python e che non riesce a causa di una codifica errata.
Come posso convertire questi nomi di file in stringhe python corrette (unicode?)?
Ho un file "d: \ utest \ ü.txt". Passando il percorso come unicode non funziona:
>>> list(os.walk('d:\\utest'))
[('d:\\utest', [], ['\xfc.txt'])]
>>> list(os.walk(u'd:\\utest'))
[(u'd:\\utest', [], [u'\xfc.txt'])]
funziona: Guardate il vostro uscita !! Sia il nome della directory u'd: \\ utest 'e il nome del file u' \ xfc.txt 'sono presentati come oggetti unicode u'blahblah' invece degli oggetti str precedenti 'blahblah'. Forse il fatto che u-con-umlaut sia rappresentato come \ xfc ti sta sbalordendo ma è lo stesso con str come con unicode e non ha nulla a che fare con il problema str/unicode. –
Forse hai bisogno di amplificare "fallisce a causa di una codifica sbagliata" ... Che cosa fallisce? Come? Mostra il traceback completo e il messaggio di errore. –