पायथन स्क्रिप्ट आउटपुट विंडो को कैसे खुला रखें?


191

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


6
एक बेल्ड +1000। मैं एक दोस्त के लिए एक शिक्षण भाषा के रूप में अजगर का उपयोग कर रहा हूं जो विंडोज का उपयोग करता है, और मुझे विश्वास नहीं हो रहा था कि यह कम से कम (मौजूदा प्रलेखन पर आधारित) जहां हम एक स्क्रिप्ट चला सकते हैं और आउटपुट देख सकते हैं।
कास्केबेल

2
बस अपनी स्क्रिप्ट को cmd विंडो में खींचें / छोड़ें
JinSnow

आपको लगता है कि आउटपुट विंडो को डिफ़ॉल्ट रूप से खुला रहना चाहिए। यह मैक ओएस में पायथन को चलाते समय करता है। बहुत निराशा
Fandango68

मैं एक अन्य प्रश्न को लिंक करने जा रहा हूं। इस के लिए एक पायथन त्रुटि के बाद विंडोज कंसोल को खुला रखें (जो मैंने ड्रैग एंड ड्रॉप पायथन स्क्रिप्ट के साथ डिबगिंग के लिए उत्तर पोस्ट किया है।)
akinuri

उत्तर देखें कि @maurizio नीचे पोस्ट किया गया है - यह केवल एक है जिसे आपको अपनी अजगर लिपियों को बदलने की आवश्यकता नहीं है।
रोरवीटिट

जवाबों:


156

आपके पास कुछ विकल्प हैं:

  1. प्रोग्राम को पहले से ही खुले टर्मिनल से चलाएं। कमांड प्रॉम्प्ट खोलें और टाइप करें:

    python myscript.py

    उस काम के लिए आपको अपने मार्ग में अजगर को निष्पादन योग्य बनाने की आवश्यकता है। बस विंडोज पर पर्यावरण चर को संपादित करने के तरीके की जांच करें , और C:\PYTHON26(या जो भी निर्देशिका आपने अजगर स्थापित की है) जोड़ें।

    जब कार्यक्रम समाप्त होता है, तो यह आपको विंडो बंद करने के बजाय cmd प्रॉम्प्ट पर वापस छोड़ देगा ।

  2. अपनी स्क्रिप्ट के अंत में प्रतीक्षा करने के लिए कोड जोड़ें। पायथन 2 के लिए, जोड़ना ...

    raw_input()

    ... स्क्रिप्ट के अंत में यह Enterकुंजी की प्रतीक्षा करता है । यह विधि कष्टप्रद है क्योंकि आपको स्क्रिप्ट को संशोधित करना होगा, और याद रखना होगा कि जब आप इसे हटा दें। अन्य लोगों की लिपियों का परीक्षण करते समय विशेष रूप से कष्टप्रद। पायथन 3 के लिए, का उपयोग करें input()

  3. एक संपादक का उपयोग करें जो आपके लिए रुकता है। अजगर के लिए तैयार किए गए कुछ संपादक निष्पादन के बाद स्वचालित रूप से आपके लिए विराम देंगे। अन्य संपादक आपको अपने प्रोग्राम को चलाने के लिए उपयोग की जाने वाली कमांड लाइन को कॉन्फ़िगर करने की अनुमति देते हैं। मैं इसे python -i myscript.pyचलाने के दौरान इसे विशेष रूप से कॉन्फ़िगर करने के लिए " " उपयोगी मानता हूं । कार्यक्रम के अंत में लोड होने के बाद, कार्यक्रम के अंत के बाद आपको एक अजगर खोल पर ले जाता है, जिससे आप आगे चर और कॉल फ़ंक्शन और विधियों के साथ खेल सकते हैं।


8
+1 करने के लिए आइटम 3. मैं अपने पायथन संपादक के रूप में स्काइट का उपयोग करता हूं और यह केवल आउटपुट को अपनी आउटपुट विंडो में रखता है। यह वास्तव में उपयोगी है क्योंकि आप संभावित रूप से एकल विंडो में एक से अधिक रन का आउटपुट देख सकते हैं।
जॉरिस टिम्मरमन्स

मैं इसे पहले से खुले टर्मिनल से चलाकर आउटपुट देखने में सक्षम हूं। लेकिन मुझे अजगर कमांड में पूरा स्क्रिप्ट पता देने की आवश्यकता है? क्या इससे बचा जा सकता है? जब मैं raw_input () विधि का उपयोग करता हूं, तो यह मुझे NameError: नाम 'raw_input'is परिभाषित नहीं करता है। क्या आप एक संपादक का सुझाव दे सकते हैं जो निष्पादन के बाद स्वतः बंद हो जाता है?
रोहितमिश्र

1
@ मोविंगहैड: शायद आप अजगर 3 का उपयोग कर रहे हैं? अजगर 3 में इसका नाम बदलकर इनपुट () कर दिया गया। लेकिन मैं अभी के लिए python 2.6 का उपयोग करूंगा, क्योंकि python 3 में महत्वपूर्ण तीसरे पक्ष के पुस्तकालयों का अभाव है जो अभी तक पोर्ट नहीं किए गए हैं। (अजगर 2v3 पर अन्य प्रश्न देखें)। संपादक के बारे में, मैं विंडोज़ का उपयोग नहीं करता, नोटपैड ++ आपको कमांड को कॉन्फ़िगर करने देता है। मैं उन एमएसीएस का उपयोग करता हूं जिनमें एक विंडोज़ संस्करण है, लेकिन मैंने कभी इसका इस्तेमाल नहीं किया।
nosklo

@ नोस्कोलो धन्यवाद !! याह मैं पायथन 3 का उपयोग कर रहा हूं। अब मूल सामग्री को करना एक मुद्दे का ज्यादा हिस्सा नहीं होना चाहिए। मैं नोटपैड ++ की कोशिश करूंगा। वर्तमान में ग्रहण के लिए
पयदेव की

@ मोविंगहैड मैं अप्टाना स्टूडियो का उपयोग करता हूं। (pydev pre packaged)। ये सचमुच अच्छा है। कहने के लिए कुछ भी नहीं।
v.oddou

51

cmd /kकिसी भी कंसोल एप्लिकेशन को खोलने के लिए विशिष्ट तरीका है (न केवल पायथन) एक कंसोल विंडो के साथ जो एप्लिकेशन बंद होने के बाद भी रहेगा। सबसे आसान तरीका है कि मैं ऐसा करने के लिए सोच सकता हूं, विन + आर को दबाएं, टाइप करें cmd /kऔर फिर उस स्क्रिप्ट को खींचें और छोड़ दें जिसे आप रन संवाद में चाहते हैं।


3
शानदार जवाब। आपको यह मिलना चाहिए था।
जगु

1
बस अजगर os.system कमांड के लिए आप os.system ("cmd / k" + myAppPath + "" + myFlagsString)
Jay

1
cmd /kकेवल विंडोज है। मैं एक मैक विकल्प के साथ मदद नहीं कर सकता, क्षमा करें।
tzot

क्या आपको स्क्रिप्ट को खींचना है, जिसमें पायथन कमांड भी शामिल है? क्षमा करें, क्या मेरे पास एक उदाहरण हो सकता है? मैं नया हूँ, खिड़कियों के नीचे पायथन में बहुत नया हूँ।
Fandango68

1
यह उत्तर सबसे सीधे आगे था और ठीक वैसा ही करता है जैसा मुझे विंडोज़ के माहौल में चाहिए था। एक बार प्रोग्राम निष्पादित होने पर टर्मिनल विंडो खुली रहती है।
कैमरनअटकिंसन

39

पहले से खुली हुई cmd विंडो से स्क्रिप्ट शुरू करें या स्क्रिप्ट के अंत में पायथन 2 में कुछ इस तरह जोड़ें:

 raw_input("Press enter to exit ;)")

या, पायथन 3 में:

input("Press enter to exit ;)")

1
"कोई भी कुंजी" काम नहीं करेगी, केवल दर्ज करें (या Ctrl + D, जहां हम हैं) के आधार पर।
डैनियल एंडरसन

1
@DanielAndersson हां, पाठ बदल दिया
अनुराग उनियाल

54
यदि आप इसके बारे में सोचते हैं, तो यह बहुत गहरा है कि केवल "दर्ज करें" आपको "बाहर निकलने" की अनुमति देगा ...
जोएल बी

19

अपवाद के मामले में अपनी खिड़की को खुला रखने के लिए (अभी तक, अपवाद को प्रिंट करते समय)

अजगर २

if __name__ == '__main__':
    try:
        ## your code, typically one function call
    except Exception:
        import sys
        print sys.exc_info()[0]
        import traceback
        print traceback.format_exc()
        print "Press Enter to continue ..." 
        raw_input() 

किसी भी मामले में खिड़की खुली रखने के लिए:

if __name__ == '__main__':
    try:
        ## your code, typically one function call
    except Exception:
        import sys
        print sys.exc_info()[0]
        import traceback
        print traceback.format_exc()
    finally:
        print "Press Enter to continue ..." 
        raw_input()

अजगर ३

Python3 के लिए आपको इसके स्थान पर उपयोगinput()raw_input() करना होगा , और निश्चित रूप से printकथनों को अनुकूलित करना होगा ।

if __name__ == '__main__':
    try:
        ## your code, typically one function call
    except BaseException:
        import sys
        print(sys.exc_info()[0])
        import traceback
        print(traceback.format_exc())
        print("Press Enter to continue ...")
        input() 

किसी भी मामले में खिड़की खुली रखने के लिए:

if __name__ == '__main__':
    try:
        ## your code, typically one function call
except BaseException:
    import sys
    print(sys.exc_info()[0])
    import traceback
    print(traceback.format_exc())
finally:
    print("Press Enter to continue ...")
    input()

14

आप उत्तर को पहले जोड़ सकते हैं: (नोटपैड ++ उपयोगकर्ता के लिए)

वर्तमान स्क्रिप्ट चलाने के लिए F5 दबाएँ और कमांड टाइप करें:

cmd /k python -i "$(FULL_CURRENT_PATH)"

इस तरह से आप अपने नोटपैड ++ पायथन स्क्रिप्ट को निष्पादित करने के बाद इंटरैक्टिव मोड में रहते हैं और आप अपने चर के साथ खेलने में सक्षम हैं और इसी तरह :)


यदि आप $ (FULL_CURRENT_PATH) को Windows पथ के नाम में बदलते हैं, तो यह एक शानदार विंडोज बैच फ़ाइल बनाता है।
नौमेनन

मुझे प्लगिन PyNPP प्राप्त करना और इसे चलाने के लिए एक शॉर्टकट प्रदान करना बहुत आसान लगा (पिछले F5 शॉर्टकट को अक्षम करना न भूलें)
JinSnow

11

इन 2 लाइनों के साथ एक Windows बैच फ़ाइल बनाएँ:

python your-program.py

pause

2
या फ़ाइल import os os.system("pause")के अंत में.py
Spikatrix

4
यह यहाँ का एकमात्र उत्तर है जो दूर से भी सही है। ऐसे उत्तर जो हर एक पायथन लिपि को भ्रष्ट करने की आवश्यकता है जो आप कभी भीraw_input या अन्य कचरे के साथ चलाएंगे बस गलत हैं। या तो कमांड लाइन पर अपनी कमांड टाइप करें, जिस तरह से पायथन आपसे उम्मीद करता है, या उस बैच भाषा का उपयोग करता है जिसे अगस्त 1981 से वास्तव में इस उद्देश्य के लिए MS-DOS प्रदान किया गया है ।
केविन जे। चेस

1
और भी बेहतर, इसका उपयोग करें python %*और इसे "ओपन विथ" प्रोग्रामों में से एक के रूप में सेट करें ताकि आप या तो एक पॉज़िंग विंडो खोलने के लिए एक .py फ़ाइल पर राइट क्लिक कर सकें या मैंने इसे अपने Anaconda3 फ़ोल्डर (PATH) में py_pause के रूप में डाल दिया। मैं चला सकते हैं py_pause my-prog.py all my argscmd लाइन से
ब्रायन

7

अजगर 2 में आप इसे कर सकते हैं: raw_input ()

>>print("Hello World!")    
>>raw_input('Waiting a key...')

अजगर 3 में आप इसे कर सकते हैं: इनपुट ()

>>print("Hello world!")    
>>input('Waiting a key...')

इसके अलावा, आप इसे time.sleep (समय) के साथ कर सकते हैं

>>import time
>>print("The program will close in 5 seconds")
>>time.sleep(5)

7

उपयोग करते हुए atexit, आप प्रोग्राम से बाहर निकलने पर सही रोक सकते हैं। यदि कोई त्रुटि / अपवाद निकास का कारण है, तो स्टैकट्रेस को प्रिंट करने के बाद यह रुक जाएगा।

import atexit

# Python 2 should use `raw_input` instead of `input`
atexit.register(input, 'Press Enter to continue...')

अपने कार्यक्रम में, मैंने कॉल को क्लॉज atexit.registerमें रखा except, ताकि कुछ गलत हो जाने पर ही यह विराम दे।

if __name__ == "__main__":
    try:
        something_that_may_fail()

    except:
        # Register the pause.
        import atexit
        atexit.register(input, 'Press Enter to continue...')

        raise # Reraise the exception.

5

मुझे भी ऐसी ही समस्या का समाधान करना पड़ा था। नोटपैड ++ के साथ मैं कमांड का उपयोग करता था: C:\Python27\python.exe "$(FULL_CURRENT_PATH)"जिसने कोड समाप्त होने के तुरंत बाद cmd विंडो को बंद कर दिया था।
अब मैं उपयोग कर रहा हूँ cmd /k c:\Python27\python.exe "$(FULL_CURRENT_PATH)"जो cmd विंडो को खुला रखता है।


1
आप अपने पथ वातावरण चर के अंत में "C: \ Python27" जोड़ना चाहते हैं। इस तरह से इसे 'cmd / k python -i "$ (FULL_CURRENT_PATH)" "तक संक्षिप्त किया जा सकता है।
निगमा

5

पायथन 3 पर

input('Press Enter to Exit...')

तरकीब करेगा।


2

खिड़की को खुला रखने के लिए मैं अनुराग से सहमत हूं और यही मैंने अपनी खिड़कियों को छोटी छोटी गणना प्रकार के कार्यक्रमों के लिए खुला रखने के लिए किया।

यह बिना किसी पाठ के कर्सर दिखाएगा:

raw_input() 

यह अगला उदाहरण आपको एक स्पष्ट संदेश देगा कि कार्यक्रम किया गया है और कार्यक्रम के भीतर किसी अन्य इनपुट प्रॉम्प्ट पर प्रतीक्षा नहीं की जा रही है:

print('You have reached the end and the "raw_input()" function is keeping the window open') 
raw_input()

ध्यान दें!
(1) अजगर 3 में, कोई कच्चा_इंपुट () नहीं है , बस इनपुट () है
(2) एक स्ट्रिंग को इंगित करने के लिए एकल उद्धरण का उपयोग करें; अन्यथा यदि आप किसी भी चीज़ के बारे में दोहराते हैं, जैसे कि "raw_input ()", तो यह सोचेगा कि यह एक फंक्शन, वेरिएबल वगैरह है, न कि टेक्स्ट।

इस अगले उदाहरण में, मैं दोहरे उद्धरण चिह्नों का उपयोग करता हूं और यह काम नहीं करेगा क्योंकि यह सोचता है कि "और फिर" फ़ंक्शन के बीच के उद्धरणों में एक विराम है, भले ही जब आप इसे पढ़ते हैं, तो आपका अपना दिमाग इसका सही अर्थ बना सकता है:

print("You have reached the end and the "input()" function is keeping the window open")
input()

उम्मीद है कि यह उन लोगों की मदद करता है जो शायद शुरू कर रहे हैं और अभी भी पता नहीं लगा है कि कंप्यूटर अभी तक कैसे सोचता है। इसमें थोड़ा समय लग सकता है। : ओ)


2

यदि आप अपनी स्क्रिप्ट को डेस्कटॉप शॉर्टकट से चलाना चाहते हैं, तो अपनी अजगर फ़ाइल पर राइट क्लिक करें और चुनें Send to|Desktop (create shortcut)। फिर शॉर्टकट पर राइट क्लिक करें और गुण चुनें। शॉर्टकट टैब पर लक्ष्य: पाठ बॉक्स चुनें और cmd /k पथ के सामने जोड़ें और ठीक पर क्लिक करें। शॉर्टकट को अब आपकी स्क्रिप्ट को बंद किए बिना चलना चाहिए और आपको इसकी आवश्यकता नहीं हैinput('Hit enter to close')

ध्यान दें, यदि आपके पास अपनी मशीन पर अजगर का एक से अधिक संस्करण है, तो cmd / k और इस तरह के स्कूटी पथ के बीच आवश्यक अजगर का नाम जोड़ें:

cmd /k python3 "C:\Users\<yourname>\Documents\your_scipt.py"

धन्यवाद! इससे वास्तव में मुझे बहुत मदद मिली। मैं एक लिनक्स उपयोगकर्ता हूं और यह पता नहीं लगा सका।
माइकल ब्रूस

1

इसके अलावा inputऔर raw_input, आप एक अनंत whileलूप का उपयोग भी कर सकते हैं , जैसे: while True: pass(पायथन 2.5 + / 3) या while 1: pass(पायथन 2/3 के सभी संस्करण)। यह कंप्यूटिंग शक्ति का उपयोग कर सकता है, हालांकि।

आप प्रोग्राम को कमांड लाइन से भी चला सकते हैं। pythonकमांड लाइन (मैक ओएस एक्स टर्मिनल) में टाइप करें और इसे Python 3.?.?(आपका पायथन संस्करण) कहना चाहिए। यह आपके पायथन संस्करण को नहीं दिखाता है, या कहता है python: command not found, बदलते पैथ मान (एनवायरोमेंटल मान, ऊपर सूचीबद्ध) / प्रकार को देखें C:\(Python folder\python.exe। यदि वह सफल है, तो टाइप करें pythonया अपने कार्यक्रम C:\(Python installation)\python.exeकी पूरी निर्देशिका


1
यह आपकी कार को तब तक छोड़ने जैसा है जब आप कॉफी या नींद के लिए जाते हैं! कई स्तरों पर खतरनाक
Fandango68

1

एक बहुत ही बेलेंटेड उत्तर, लेकिन मैंने एक विंडोज बैच फाइल बनाई, pythonbat.batजिसमें निम्नलिखित शामिल हैं:

python.exe %1
@echo off
echo.
pause

और फिर फ़ाइलों के pythonbat.batलिए डिफ़ॉल्ट हैंडलर के रूप में निर्दिष्ट किया गया .py

अब, जब मैं .pyफ़ाइल एक्सप्लोरर में किसी फ़ाइल को डबल-क्लिक करता हूं, तो यह एक नई कंसोल विंडो खोलता है, पायथन स्क्रिप्ट चलाता है और फिर रुक जाता है (तब तक खुला रहता है), जब तक मैं कोई कुंजी नहीं दबाता ...

किसी भी पाइथन लिपियों के लिए आवश्यक बदलाव नहीं।

मैं अभी भी एक कंसोल विंडो खोल सकता हूं और निर्दिष्ट कर python myscript.pyसकता हूं कि मुझे क्या करना है ...

(मैंने अभी देखा @maurizio ने पहले ही इस सटीक उत्तर को पोस्ट कर दिया है)


0

आप PowerShell को खोल सकते हैं और "अजगर" टाइप कर सकते हैं। पायथन आयात होने के बाद, आप कोड को चलाने के लिए अपने पसंदीदा टेक्स्ट-एडिटर से सोर्स कोड को कॉपी कर सकते हैं।

खिड़की बंद नहीं होगी।


0

यदि आप cmd- विंडो खुली रहना चाहते हैं और रनिंग-फाइल डायरेक्टरी में हैं तो यह विंडोज 10 पर काम करता है:

cmd /k cd /d $(CURRENT_DIRECTORY) && python $(FULL_CURRENT_PATH)

0

मुझे लगता है कि win10 में मेरे py3 एनवायरमेंट पर समाधान प्रशासक के रूप में cmd ​​या शक्तियां चला रहा है, और आउटपुट एक ही कंसोल विंडो पर रहेगा, किसी भी अन्य प्रकार के उपयोगकर्ता रन पायथन कमांड एक नई कंसोल विंडो खोलने के लिए अजगर का कारण होगा।


-1
  1. यहां जाएं और नोटपैड ++ डाउनलोड और इंस्टॉल करें
  2. यहां जाएं और डाउनलोड करें और पायथन 2.7 स्थापित करें 3 नहीं 3।
  3. प्रारंभ, रन पॉवर्सशेल। निम्नलिखित दर्ज करें। [Environment]::SetEnvironmentVariable("Path", "$env:Path;C:\Python27", "User")
  4. पॉवर्सशेल को बंद करें और इसे फिर से खोलें।
  5. अपने कार्यक्रमों के लिए एक निर्देशिका बनाएं। mkdir स्क्रिप्ट
  6. उस निर्देशिका cd स्क्रिप्ट को खोलें
  7. नोटपैड ++ में, एक नई फ़ाइल प्रकार में: print "hello world"
  8. फ़ाइल को hello.py के रूप में सहेजें
  9. पावरशेल पर वापस जाएं और सुनिश्चित करें कि आप डाइर टाइप करके सही डायरेक्टरी में हैं। आपको अपनी फ़ाइल hello.py देखनी चाहिए।
  10. पॉवरशेल प्रॉम्प्ट प्रकार पर: python hello.py

-1

खिड़की को खुला रखने के लिए एक सरल हैक:

counter = 0

While (True):

    If (counter == 0):

        # Code goes here

    counter += 1

काउंटर इतना है कि कोड खुद को नहीं दोहराएगा।


-1

सबसे सरल तरीका:

import time

#Your code here
time.sleep(60)
#end of code (and console shut down)

यह कोड को 1 मिनट तक छोड़ देगा फिर इसे बंद कर देगा।


1
तुम्हारी गंभीरता से हिम्मत कैसे हुई। अतः अनावश्यक। यह बिल्कुल नहीं है कि यह सवाल क्या है और आप इसे जानते हैं।
रेडगर टेक

-2

विंडोज़ 10 पर यह भीख माँगने पर डालें:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

अजीब है, लेकिन यह मेरे लिए काम करता है! (अंत में इनपुट के साथ) (निश्चित रूप से)

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