Sto scrivendo uno script che deve spostare alcuni file, ma sfortunatamente non sembra che lo os.path
giochi molto bene con l'internazionalizzazione. Quando ho file chiamati in ebraico, ci sono problemi. Ecco uno screenshot del contenuto di una directory:os.path di Python che si strozza sui nomi di file ebraici
alt text http://eli.thegreenplace.net/files/temp/hebfilenameshot.png
Ora considerano questo codice che va oltre i file in questa directory:
files = os.listdir('test_source')
for f in files:
pf = os.path.join('test_source', f)
print pf, os.path.exists(pf)
L'output è:
test_source\ex True
test_source\joe True
test_source\mie.txt True
test_source\__()'''.txt True
test_source\????.txt False
Si noti come os.path.exists
pensa che il file con nome in ebraico non esiste nemmeno? Come posso risolvere questo?
ActivePython 2.5.2 su Windows XP Home SP2
non sembra essere schizzinosa su ascii in tutti gli ambienti. Vedi la mia risposta. La stampa – PEZ
non ha problemi nella stampa di unicode: il problema potrebbe essere nella codifica stdout. Se la console è unicode, non ci sono problemi, altrimenti è richiesta una codifica esplicita. – piro
È eccellente. Dovrebbe significare che puoi riportare i nomi di file normali su Windows se stampi su un file gestito con il set di codifica corretto. Il gestore di errori 'replace' mi segnala la sconfitta. =) – PEZ