2012-07-24 10 views
6

मेरे पास एक पाइथन स्क्रिप्ट है जिसे मैंने रजिस्ट्री-कुंजी का उपयोग करके छोड़ने योग्य बनाया है, लेकिन ऐसा लगता है कि यह काम नहीं कर रहा है। Cmd.exe विंडो बस चमकती है, क्या मैं किसी भी तरह खिड़की को बना सकता हूं, या आउटपुट को बचा सकता हूं?cmd.exe को खोलें

संपादित करें: समस्या यह थी कि उसने पूरे पथ को न केवल फ़ाइल नाम दिया।

उत्तर

6

आप इस के लिए एक शुद्ध पायथन समाधान चाहते हैं, तो आप खंड को छोड़कर/एक कोशिश के साथ अपनी स्क्रिप्ट रैप करने के लिए होगा एक अपवाद। यह तब भी बंद हो जाएगा जब पाइथन स्क्रिप्ट को पार्स नहीं कर सकता है, यानी जब आपके पास सिंटैक्स त्रुटि हो। यदि आप इसे भी ठीक करना चाहते हैं, तो मैं एक अच्छा आईडीई सुझाता हूं जो आपको एक अधिक सुखद तरीके से विकसित करने की अनुमति देता है (PyCharm और PyDev दिमाग में आते हैं)।

+0

धन्यवाद, मैं आपकी पोस्ट से पहले ऐसा कर रहा हूं लेकिन वैसे भी धन्यवाद :) –

+1

शायद उसी स्तर पर 'print_exc()' कॉल के नीचे ('raw_')' इनपुट' डालें। फिर यह केवल तभी रोक देगा जब कोई अपवाद हो। – glglgl

2

अपनी स्क्रिप्ट के अंत में एक लाइन सम्मिलित करें:

raw_input("Press Enter to close") # Python 2 

या

input("Press Enter to close") # Python 3 
1

जब अपनी स्क्रिप्ट इसके निष्पादन समाप्त होने पर, खिड़की बंद हो जाता है।

इसे खोलने के लिए एक चाल यह है कि उपयोगकर्ता को किसी प्रकार के इनपुट के लिए पूछना है, उदा। raw_input के माध्यम से।


तो आप बस अपनी स्क्रिप्ट के अंत तक

raw_input() 

जोड़ने उपयोगकर्ता के लिए इंतजार करना प्रेस करने दर्ज कर सकते हैं।

import traceback 
try: 
    ... your script ... 
except: 
    traceback.print_exc() 

raw_input("Press Enter to close") # Python 2 
input("Press Enter to close") # Python 3 

इस तरह खिड़की खुला रहेगा, तब भी जब अपने कोड फेंकता है:

1

एक और संभावित विकल्प एक टेक्स्टरेरा और एक करीबी बटन के साथ एक मूल टीकेंटर जीयूआई बनाना है। फिर इसे उपप्रोसेसर या इक्विव के साथ चलाएं। और pythonw.exe के साथ निष्पादित आपकी पायथन लिपि से स्टडआउट लें ताकि कोई सीएमडी प्रॉम्प्ट शुरू न हो।

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

बस एक विचार।

1

या तो अपनी स्क्रिप्ट पर राइट-क्लिक करें और प्रोग्राम-> इसके गुणों में निकास चेकबॉक्स पर बंद करें, या cmd /k का उपयोग अपनी कॉलिंग लाइन के हिस्से के रूप में करें।

कृत्रिम देरी शुरू करने से पहले दो बार सोचें या कुंजी दबाए जाने की आवश्यकता है - यह आपकी स्क्रिप्ट को किसी भी अनुपयुक्त/पाइप कॉल में अधिकतर अनुपयोगी बना देगा।

संबंधित मुद्दे