Convertir python noms de fichiers en unicode

Je suis sur la version 2.6 de python pour Windows.

- Je utiliser os.marche pour la lecture d'un fichier de l'arborescence. Les fichiers peuvent avoir des non-caractères 7 bits (en allemand "ae" par exemple) dans leur nom de fichier. Ces sont codées dans les Pythons interne de la représentation sous forme de chaîne.

Je suis le traitement de ces noms de fichiers avec Python fonctions de la bibliothèque et qui échoue en raison d'un mauvais encodage.

Comment puis-je convertir ces fichiers au bon (unicode?) python cordes?

J'ai un fichier "d:\utest\ü.txt". En passant le chemin d'accès en unicode ne fonctionne pas:

>>> list(os.walk('d:\\utest'))
[('d:\\utest', [], ['\xfc.txt'])]
>>> list(os.walk(u'd:\\utest'))
[(u'd:\\utest', [], [u'\xfc.txt'])]
  • Il NE fonctionne pas: Regardez votre sortie!! À la fois le nom du répertoire u'd:\\utest" et le nom de fichier u'\xfc.txt "sont présentées comme des objets unicode u'blahblah " au lieu de la précédente str objets blahblah'. Peut-être le fait que les u-avec-tréma est représenté par \xfc est ahurissant vous, mais c'est la même chose avec les str comme avec unicode et n'a rien à voir avec le str/unicode problème.
  • Peut-être vous avez besoin d'amplifier les "échoue en raison d'un mauvais encodage" ... Ce qui ne parvient pas? Comment? Montrer l'intégralité de la traçabilité en amont et message d'erreur.
InformationsquelleAutor Bernd | 2009-06-27