Vexing पायथन वाक्यविन्यास त्रुटि

मैं संस्करण 2.7.3 का उपयोग कर एक पायथन लिपि लिख रहा हूं। लिपि में एक रेखा है

toolsDir = 'tools/'

जब मैं इसे टर्मिनल में चलाता हूं तो मुझे स्ट्रिंग 'आर' में अंतिम वर्ण पर सिंटेक्स त्रुटि: अमान्य वाक्यविन्यास मिलता है। मैंने "विरोध के रूप में" का उपयोग करके स्ट्रिंग का नाम बदलने का प्रयास किया है। अगर मैं वास्तव में बैश के माध्यम से पायथन में जाता हूं और स्ट्रिंग को एक पंक्ति में घोषित करता हूं और इसे प्रिंट करता हूं तो मुझे कोई त्रुटि नहीं मिलती है।

I checked the encoding via file -i update.py and I get text/x-python; charset=us-ascii

मैंने पाठ संपादकों के रूप में TextWrangler, नैनो और LeafPad का उपयोग किया है।

मुझे लगता है कि यह संपादकों में से एक के एन्कोडिंग के साथ कुछ हो सकता है। मैंने इस स्क्रिप्ट को बिना किसी त्रुटि के पहले चलाया है।

किसी भी सलाह की काफी सराहना की जाएगी।

0
bash (डेबियन लिनक्स) python update.py से @ karthikr
जोड़ा लेखक KDEx, स्रोत
@chepner मैं डेबियन लिनक्स चला रहा हूं (और ओएसएक्स पर भी वही त्रुटि प्राप्त करता हूं), मैंने इसे सिर्फ औजारों का नाम बदलने की कोशिश की है और एक ही त्रुटि प्राप्त की है
जोड़ा लेखक KDEx, स्रोत
@tripleee #!/usr/bin/python और आयात अनुभाग के बाद मेरी स्क्रिप्ट में यह पहली पंक्ति है
जोड़ा लेखक KDEx, स्रोत
पिछली रेखाएं कैसी दिखती हैं?
जोड़ा लेखक tripleee, स्रोत
यह एक डॉस लाइन एंडिंग मुद्दे की तरह अस्पष्ट रूप से दिखता है, 'आर' को स्ट्रिंग में अंतिम चरित्र के रूप में रहस्यमय तरीके से रिपोर्ट किया जा रहा है, लेकिन मुझे एक कारण से अनजान है कि पाइथन की परवाह होगी, या वास्तव में एक शाब्दिक कैरिज रिटर्न कैसे बदला जाएगा < कोड> \ r कि त्रुटि संदर्भित हो सकती है।
जोड़ा लेखक chepner, स्रोत
आप स्क्रिप्ट को कैसे निष्पादित कर रहे हैं?
जोड़ा लेखक karthikr, स्रोत

3 उत्तर

त्रुटि, निश्चित रूप से, एक मूर्खतापूर्ण था।

मेरे आयात में से एक में मैं त्रुटि कोड को बंद या पकड़ने के बिना try का उपयोग करता हूं। पिलिंट ने इसे पकड़ नहीं लिया और त्रुटि संदेश ने इसका संकेत नहीं दिया।

यदि भविष्य में किसी को यह ट्रिपल सिंटैक्स त्रुटियों के लिए सभी खोलने वाले कोड की जांच करता है।

1
जोड़ा

स्ट्रिंग 'टूल्स /' है। toolsDir एक चर है। आप निश्चित रूप से विभिन्न शब्दावली का उपयोग करने के लिए स्वतंत्र हैं, लेकिन आप भ्रमित लोगों को आपकी मदद करने की कोशिश कर रहे हैं। उस पंक्ति में केवल r वैरिएबल नाम का अंतिम अक्षर है, इसलिए मुझे लगता है कि यह त्रुटि का स्थान है।

सबसे अधिक संभावना है कि आप एक सामान्य स्थान के बजाय एक निश्चित चौड़ाई वाली जगह (वर्ण कोड <कोड> 0xA0 ) पेश करने में कामयाब रहे हैं। SP = SP (सभी तीन वर्ण) को हटाने और उन्हें पुनः टाइप करने का प्रयास करें।

1
जोड़ा
मैंने स्ट्रिंग टूल्स डायरेक्टरी का नाम बदल दिया है और पूरी लाइन को पीछे छोड़ दिया है और इसे फिर से लिखा है और वही त्रुटि मिली है। यदि आप हेक्सडम्प-सी आउटपुट से प्रासंगिक लाइनें पोस्ट करते हैं तो क्या आप इसे स्पॉट करने में मेरी सहायता कर सकते हैं?
जोड़ा लेखक KDEx, स्रोत

पिलिंट के माध्यम से कोड चलाने का प्रयास करें।

आपके पास शायद इस से पहले पास की रेखा पर एक वाक्यविन्यास त्रुटि हो। इस लाइन पर टिप्पणी करने का प्रयास करें और देखें कि त्रुटि क्या चलती है।

आपके पास व्हाइटस्पेस त्रुटि हो सकती है, पाइथन में सफेद जगहों को मत भूलना। यदि आपने अपनी फ़ाइल में कहीं भी टैब और रिक्त स्थान मिश्रित किए हैं तो यह सिंटैक्स चेकर को कई पंक्तियों से फेंक सकता है।

यदि आपने किसी अन्य स्रोत से लाइनों की प्रतिलिपि बनाई है और चिपकाई है तो आपने व्हाइटस्पेस की प्रतिलिपि बनाई हो सकती है जो आपके द्वारा उपयोग किए जाने वाले किसी भी सम्मेलन के अनुरूप नहीं है।

1
जोड़ा
यह एक अच्छा विचार है कि मैंने नहीं सोचा था, हालांकि आउटपुट यह है कि मेरे पास एक ही पंक्ति पर एक वाक्यविन्यास त्रुटि है। अब हम त्रुटि कम से कम कहीं और नहीं है।
जोड़ा लेखक KDEx, स्रोत