मैं एक ऐसी स्क्रिप्ट लिख रहा हूं जिसे कुछ फाइलों को स्थानांतरित करना है, लेकिन दुर्भाग्यवश यह os.path
अंतर्राष्ट्रीयकरण के साथ नाटकों में प्रतीत नहीं होता है। जब मेरे पास हिब्रू में नाम की गई फाइलें हैं, तो समस्याएं हैं।पाइथन का os.path हिब्रू filenames पर choking
files = os.listdir('test_source')
for f in files:
pf = os.path.join('test_source', f)
print pf, os.path.exists(pf)
उत्पादन होता है:
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
अब इस कोड है कि इस निर्देशिका में फ़ाइलों के ऊपर जाता है पर विचार करें: यहाँ एक निर्देशिका की सामग्री का एक स्क्रीनशॉट ध्यान दें कि os.path.exists
सोचता है कि हेब्रू-नामित फ़ाइल भी मौजूद नहीं है? मैं इसे कैसे ठीक कर सकता हूं?
Windows XP होम SP2
प्रिंट हालांकि सभी वातावरणों पर ascii के बारे में picky प्रतीत नहीं होता है। मेरा जवाब देखें – PEZ
प्रिंट को यूनिकोड प्रिंट करने में कोई समस्या नहीं है: समस्या stdout एन्कोडिंग में हो सकती है। यदि कंसोल यूनिकोड है तो कोई समस्या नहीं है, अन्यथा एक स्पष्ट एन्कोड की आवश्यकता है। – piro
यह उत्कृष्ट है। इसका मतलब यह होना चाहिए कि यदि आप सही एन्कोडिंग सेट के साथ फ़ाइल हैंडल पर प्रिंट करते हैं तो आप विंडोज पर सेने फ़ाइल नामों की रिपोर्ट कर सकते हैं। 'प्रतिस्थापन' त्रुटि हैंडलर सिर्फ मुझे याद दिलाता है। =) – PEZ