Bazı dosyaları taşımak zorunda olan bir komut dosyası yazıyorum, ama maalesef çok iyi uluslararasılaşma ile os.path
oynar görünmüyor. İbranice adlı dosyam olduğunda, sorun var.Python'un os.path İbranice dosyalarında boğulma
files = os.listdir('test_source')
for f in files:
pf = os.path.join('test_source', f)
print pf, os.path.exists(pf)
çıkışı:
test_source\ex True
test_source\joe True
test_source\mie.txt True
test_source\__()'''.txt True
test_source\????.txt False
alt text http://eli.thegreenplace.net/files/temp/hebfilenameshot.png
Şimdi bu dizine dosyaların üzerine gider bu kodu göz önünde bulundurun: Burada bir dizinin içeriğinin bir ekran görüntüsü var os.path.exists
, İbranice adlı dosyanın bulunmadığını nasıl algıladığını fark ettiniz mi? Bunu nasıl düzeltebilirim? Windows XP Home SP2
print, tüm ortamlarda ascii konusunda seçici görünmüyor. Cevabımı gör. – PEZ
print, unicode yazdırmada sorun yok: sorun, stdout kodlamasında olabilir. Konsol unicode ise sorun yok, aksi takdirde açık bir kodlama gereklidir. – piro
Mükemmel. Doğru kodlama kümesine sahip bir dosya tanıtıcısına yazdırırsanız sane dosya adlarını Windows'ta bildirebileceğiniz anlamına gelir. 'Değiştir' hata işleyicisi sadece bana yenilgi sinyalleri. =) – PEZ