2009-06-16 15 views
133

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

+3

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

+1

बस अपनी स्क्रिप्ट को एक cmd windows – JinSnow

+0

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

उत्तर

119

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

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

    python myscript.py 
    

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

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

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

    raw_input() 
    

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

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

+7

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

+0

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

+1

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

26

प्रारंभ स्क्रिप्ट पहले से ही स्क्रिप्ट के अंत में cmd ​​खिड़की या खोलने कुछ इस तरह जोड़ने के लिए, अजगर 2 में से:

raw_input("Press enter to exit ;)") 

या, अजगर 3 में:

input("Press enter to exit ;)") 
+1

"कोई भी कुंजी" काम नहीं करेगी, केवल एंटर होगा (या Ctrl + D, हम कहां हैं) के आधार पर। –

+0

@DanielAndersson yep ने पाठ को –

+31

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

37

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

+0

याहू यह भी काम करता है – rohitmishra

+2

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

+1

सिर्फ python os.system कमांड के लिए fyi आप os.system ("cmd/k" + myAppPath + "" + myFlagsString) करेंगे – Jared

5

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

+1

आप अपने पथ पर्यावरण परिवर्तक के अंत में "; सी: \ Python27" जोड़ना चाह सकते हैं। इस तरह इसे 'cmd/k python -i "$ (FULL_CURRENT_PATH)' '' के रूप में छोटा किया जा सकता है - 'वास्तव में ऊपर क्या जवाब उपयोगी है- i। – Enigma

12

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

प्रेस F5 आदेश में वर्तमान स्क्रिप्ट और प्रकार को चलाने के लिए: इस तरह से

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

आप अपने नोटपैड ++ को क्रियान्वित करने के बाद इंटरैक्टिव मोड में बने रहने अजगर स्क्रिप्ट और तुम और पर इतना :)

+0

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

+0

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

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

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

raw_input() 

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

यह सिर्फ कोई पाठ के साथ एक कर्सर दिखाई देंगे

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

Note!
(1) In python 3, there is no raw_input(), just input().
(2) Use single quotes to indicate a string; otherwise if you type doubles around anything, such as "raw_input()", it will think it is a function, variable, etc, and not text.

यह अगले उदाहरण में, मैं हमें ई दोहरे उद्धरण चिह्नों और यह नहीं होगा काम है क्योंकि यह सोचता है कि बीच उद्धरण में एक को तोड़ने "" और "समारोह" यहाँ तक कि जब आप इसे पढ़ हालांकि, अपने खुद के मन इसके बारे में सही समझ बनाने के कर सकते है:

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

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

16

अपने विंडो खुली अपवाद के मामले में अभी तक किसी अपवाद https://stackoverflow.com/a/3702726/2436175 का उपयोग कर)

if __name__ == '__main__': 
    try: 
     ## your code, typically one function call 
    except: 
     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: 
     import sys 
     print sys.exc_info()[0] 
     import traceback 
     print traceback.format_exc() 
    finally: 
     print "Press Enter to continue ..." 
     raw_input() 
+0

धन्यवाद, एंटोनियो! – LetzerWille

6

बनाएं इन 2 लाइनों के साथ एक विंडोज बैच फ़ाइल:

python your-program.py 

pause 
+1

या '.py' फ़ाइल –

+1

के अंत में 'ओएस ओएससिस्टम (" रोकें ") आयात करें। यह एकमात्र उत्तर है जो यहां तक ​​कि दूरस्थ रूप से भी सही है। उत्तर जिनके लिए हर एक पाइथन लिपि को दूषित करने की आवश्यकता है, आप कभी भी 'कच्चे_इनपुट' या अन्य कचरे के साथ रन_ करेंगे। या तो पाइथन आपको जिस तरह से उम्मीद करता है, कमांड लाइन पर अपना कमांड टाइप करें, या [बैच भाषा] (https://en.wikipedia.org/wiki/List_of_DOS_commands#PAUSE) का उपयोग करें जिसे एमएस-डॉस के साथ प्रदान किया गया है उद्देश्य_ [अगस्त 1 9 81] के बाद से (https://en.wikipedia.org/wiki/Timeline_of_DOS_operating_systems#8108)। –

+0

और भी बेहतर, 'पायथन% *' का उपयोग करें और इसे "ओपन के साथ" प्रोग्रामों में से एक के रूप में सेट करें ताकि आप या तो एक रुकने वाली विंडो खोलने के लिए .py फ़ाइल पर राइट क्लिक कर सकें या मैंने इसे अपने एनाकोंडा 3 फ़ोल्डर (पीएटीएच में) में भी डाल दिया है। py_pause.bat के रूप में अब मैं cmd ​​लाइन – brian

1

के अलावाऔर 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 और पूर्ण निर्देशिका टाइप करें।

+0

से 'my ppr_pause my-prog.py my my args' चला सकता हूं यह आपकी कार चलने की तरह है जब आप कॉफी या नींद के लिए जाते हैं! कई स्तरों पर खतरनाक – Fandango68

6

अजगर 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) 
5

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

import atexit 

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

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

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. 
-2

खिड़कियों पर यह शुरुआत में 10 डालने:

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

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

+0

यह क्यों कम किया गया था? यह वास्तव में काम करता है! – Fandango68

1

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

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

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

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

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