मुझे अपनी फ़ाइल पथ में एक यूनिकोड से बचने के लिए सिंटैक्सएयर क्यों मिलता है?


105

जिस फ़ोल्डर को मैं प्राप्त करना चाहता हूं उसे अजगर कहा जाता है और मेरे डेस्कटॉप पर है।

जब मैं इसे प्राप्त करने का प्रयास करता हूं तो मुझे निम्न त्रुटि मिलती है

>>> os.chdir('C:\Users\expoperialed\Desktop\Python')
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape

8
कोशिश करो s.chdir(r'C:\Users\expoperialed\Desktop\Python'); पढ़ें: docs.python.org/2/reference/…
NullUserException

जवाबों:


168

आपको एक कच्चे स्ट्रिंग का उपयोग करने की आवश्यकता है , अपने स्लैश को दोगुना करें या इसके बजाय आगे स्लैश का उपयोग करें:

r'C:\Users\expoperialed\Desktop\Python'
'C:\\Users\\expoperialed\\Desktop\\Python'
'C:/Users/expoperialed/Desktop/Python'

नियमित अजगर स्ट्रिंग्स में, \Uचरित्र संयोजन एक विस्तारित यूनिकोड कोडपॉइंट से बचने का संकेत देता है।

किसी भी मान्यता प्राप्त एस्केप सीक्वेंस , जैसे \aया tया \x, आदि के लिए आप किसी भी अन्य मुद्दों को हिट कर सकते हैं ।


यह मेरी मदद नहीं करता है :(
दिमित्री

1
@ आपकी टिप्पणी से किसी को भी मदद नहीं मिलती है। क्षमा करें उत्तर ने आपकी समस्या को हल करने में मदद नहीं की, लेकिन मैं उस प्रतिक्रिया के साथ अपनी पोस्ट को कैसे सुधारने जा रहा हूं?
मार्टिन पीटर्स

नीचे मेरे जवाब को देखो।
दिमित्री

@ डमित्री: यह एक अलग मुद्दा है, और स्ट्रिंग शाब्दिक के साथ बहुत कम है। साइट पर अन्य पोस्ट हैं जो raw_unicode_escapeकोडेक को संभालते हैं । एक विशिष्ट पैकेज में एक बग होता है जो समान अपवाद को फेंकता है, वास्तव में इस विशिष्ट प्रश्न का उत्तर नहीं है, इसलिए मैंने इसे फिर से हटा दिया (समुदाय ने पहले ही इसे हटा दिया था)। मुझे संदेह है कि उस विशिष्ट बग को हल करने के बेहतर तरीके हैं (जैसे उस बिंदु तक नहीं पहुंचना जहां आपको raw_unicode_escapeपहले स्थान पर उपयोग करना है)।
मार्टिन पीटर्स

10

C:\\Users\\expoperialed\\Desktop\\Python इस वाक्य रचना ने मेरे लिए काम किया।


7

यह आमतौर पर पाइथन में होता है 3. एक सामान्य कारण यह होगा कि आपकी फ़ाइल पथ को निर्दिष्ट करते समय आपको "\" के बजाय "\\" की आवश्यकता होगी। जैसे की:

filePath = "C:\\User\\Desktop\\myFile"

पायथन 2 के लिए, बस "\" का उपयोग करना काम करेगा।


5
f = open('C:\\Users\\Pooja\\Desktop\\trolldata.csv')

पायथन प्रोग्राम 3 और इसके बाद के संस्करण में अजगर कार्यक्रम के लिए '\\' का प्रयोग करें। त्रुटि हल हो जाएगी।


ट्रिपल `क्यों`? टाइपिंग संपादन? ठीक है अब मैं पोस्ट इतिहास देख रहा हूं और किसी ने निश्चित रूप से पर्याप्त रूप से फ़ॉर्मेट नहीं किया है, इसलिए मैंने यह तय किया है। कृपया इसे SO विशेषताओं से परिचित करें ।
मारेक आर

1

तीनों वाक्य रचना बहुत अच्छी तरह से काम करते हैं।

एक और तरीका है पहले लिखना

पथ = r'C: \ user \ ................... '(जो भी आपके लिए पथ है)

और फिर इसे os.chdir (पथ) को पास करना


0

इसे इस्तेमाल करो

os.chdir('C:/Users\expoperialed\Desktop\Python')

-1

मेरी भी यही त्रुटि थी। असल में, मुझे संदेह है कि "C: \" के बाद पथ "U" या "उपयोगकर्ता" से शुरू नहीं हो सकता। मैंने अपनी निर्देशिका "c: \ file_name.png" में बदल कर उस फ़ाइल को डाल दिया है जिसे मैं 'c: \' पथ के तहत सही अजगर से एक्सेस करना चाहता हूं।

आपके मामले में, यदि आपको "अजगर" फ़ोल्डर तक पहुंचना है, तो शायद अजगर को फिर से स्थापित करें, और स्थापना पथ को "c: \ python" की तरह बदल दें। अन्यथा, बस अपने पथ में "... \ उपयोगकर्ता ..." से बचें और अपनी परियोजना को C: के अंतर्गत रखें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.