Estoy en Python 2.6 para Windows.Convertir nombres de archivo de python a Unicode
Uso os.walk para leer un árbol de archivos. Los archivos pueden tener caracteres que no sean de 7 bits ("ae" alemán, por ejemplo) en sus nombres de archivo. Estos están codificados en la representación de cadenas internas de pitones.
Estoy procesando estos nombres de archivo con las funciones de la biblioteca de Python y eso falla debido a una codificación incorrecta.
¿Cómo puedo convertir estos nombres de archivo a cadenas de python adecuadas (unicode?)?
Tengo un archivo "d: \ utest \ ü.txt". Pasando el camino como Unicode no funciona:
>>> list(os.walk('d:\\utest'))
[('d:\\utest', [], ['\xfc.txt'])]
>>> list(os.walk(u'd:\\utest'))
[(u'd:\\utest', [], [u'\xfc.txt'])]
que hace el trabajo: Mire su salida !! Tanto el nombre de directorio u'd: \\ utest 'como el nombre de archivo u' \ xfc.txt 'se presentan como objetos unicode u'blahblah' en lugar de los objetos str anteriores 'blahblah'. Tal vez el hecho de que u-with-umlaut se represente como \ xfc te alucine, pero eso es lo mismo con str que con unicode y no tiene nada que ver con el problema str/unicode. –
Quizás necesite amplificar "falla debido a una codificación incorrecta" ... ¿Qué falla? ¿Cómo? Muestra el rastreo completo y el mensaje de error. –