J'écris un script qui doit déplacer un fichier, mais malheureusement, il ne semble pas os.path
joue très bien avec l'internationalisation. Quand j'ai des fichiers nommés en hébreu, il y a des problèmes. Voici une capture d'écran du contenu d'un répertoire:os.path de Python étouffement sur les noms de fichiers hébreux
alt text http://eli.thegreenplace.net/files/temp/hebfilenameshot.png
considèrent maintenant ce code qui va sur les fichiers dans ce répertoire:
files = os.listdir('test_source')
for f in files:
pf = os.path.join('test_source', f)
print pf, os.path.exists(pf)
La sortie est:
test_source\ex True
test_source\joe True
test_source\mie.txt True
test_source\__()'''.txt True
test_source\????.txt False
Notez comment os.path.exists
pense que le fichier nommé hébreu n'existe même pas? Comment puis-je résoudre ce problème?
ActivePython sous Windows XP 2.5.2 SP2 Accueil
impression ne semble pas être pointilleux sur ascii sur tous les environnements cependant. Vois ma réponse. – PEZ
impression n'a pas de problème dans unicode d'impression: le problème peut être dans le codage stdout. Si la console est unicode, il n'y a pas de problème, sinon un encodage explicite est requis. – piro
C'est excellent. Cela devrait signifier que vous pouvez rapporter des noms de fichiers sains sur Windows si vous imprimez sur un handle de fichier avec le bon encodage. Le gestionnaire d'erreur 'replace' me signale simplement la défaite. =) – PEZ