파이썬 스크립트 출력 창을 유지하는 방법?


193

방금 파이썬으로 시작했습니다. Windows에서 Python 스크립트 파일을 실행하면 출력 창이 나타나지만 즉시 사라집니다. 출력을 분석 할 수 있도록 거기에 있어야합니다. 어떻게 열어 둘 수 있습니까?


6
뒤늦은 +1000. 저는 Windows를 사용하는 친구를 위해 파이썬을 교육용 언어로 사용하고 있으며 스크립트를 실행하고 출력을 볼 수있는 위치에 도달하는 데 얼마나 많은 문제가 있는지 믿을 수 없었습니다.
Cascabel

2
스크립트를 cmd 창으로 끌어서 놓기
JinSnow

기본적으로 출력 창은 열려 있어야합니다. Mac OS에서 Python을 실행할 때 수행됩니다. 매우 실망
Fandango68

또 다른 질문을하겠습니다 . 파이썬 오류 후 Windows 콘솔을 열어 두십시오 (파이썬 스크립트 드래그 앤 드롭으로 디버깅에 대한 답변을 게시했습니다).
akinuri

@maurizio가 아래에 게시 한 답변을 참조하십시오-파이썬 스크립트를 변경할 필요가없는 유일한 사람입니다.
roryhewitt

답변:


157

몇 가지 옵션이 있습니다.

  1. 이미 열려있는 터미널에서 프로그램을 실행하십시오. 명령 프롬프트를 열고 다음을 입력하십시오.

    python myscript.py

    그것이 작동하려면 경로에 python 실행 파일이 필요합니다. Windows에서 환경 변수를 편집하는 방법을 확인하고 C:\PYTHON26파이썬을 설치 한 디렉토리를 추가하십시오 .

    프로그램이 끝나면 창을 닫는 대신 cmd 프롬프트로 돌아갑니다 .

  2. 스크립트가 끝날 때까지 기다리는 코드를 추가하십시오. Python2의 경우 ...

    raw_input()

    ... 스크립트 끝에서 Enter키를 기다립니다 . 이 방법은 스크립트를 수정해야하고 작업이 끝나면 제거해야한다는 점에서 성가신 일입니다. 다른 사람의 스크립트를 테스트 할 때 특히 성가시다. Python3의 경우을 사용하십시오 input().

  3. 일시 중지 된 편집기를 사용하십시오. 파이썬을 위해 준비된 일부 편집기는 실행 후 자동으로 일시 중지됩니다. 다른 편집기를 사용하면 프로그램을 실행하는 데 사용하는 명령 줄을 구성 할 수 있습니다. python -i myscript.py실행할 때 " " 로 구성하는 것이 특히 유용합니다 . 프로그램 종료 후 프로그램 환경이로드 된 상태에서 파이썬 쉘로 넘어가므로 변수를 가지고 연주하고 함수와 메소드를 호출 할 수 있습니다.


8
+1 ~ 항목 3. Scite를 Python 편집기로 사용하고 출력을 자체 출력 창에 유지합니다. 단일 창에서 둘 이상의 실행 결과를 잠재적으로 볼 수 있기 때문에 이것은 매우 유용합니다.
Joris Timmermans

이미 열린 터미널에서 출력을 실행하여 출력을 볼 수 있습니다. 그러나 파이썬 명령에서 완전한 스크립트 주소를 제공해야합니까? 피할 수 있습니까? raw_input () 메서드를 사용하면 NameError가 발생합니다. 이름 'raw_input'이 정의되지 않았습니다. 실행 후 자동으로 일시 중지되는 편집기를 제안 할 수 있습니까?
rohitmishra 2016 년

1
@ movingahead : 아마도 파이썬 3을 사용하고 있습니까? 파이썬 3에서는 input ()으로 이름이 바뀌 었습니다. 그러나 파이썬 3에는 아직 포팅되지 않은 중요한 타사 라이브러리가 없기 때문에 파이썬 2.6을 사용하려고합니다. (python 2vs3에 대한 다른 질문을 참조하십시오). 편집기에 관해서는, 나는 창을 사용하지 않고 notepad ++는 명령을 구성 할 수 있습니다. 나는 Windows 버전이있는 emacs를 사용하지만 결코 사용하지 않았습니다.
nosklo 2016 년

@nosklo 감사합니다 !! Yah 저는 Python 3을 사용하고 있습니다. 지금 기본 작업을 수행하는 것은 큰 문제가되지 않습니다. 메모장 ++을 사용해 볼 것입니다. 현재 이클립스를 PyDev에서 노력하고 있습니다
rohitmishra

@movingahead Aptana 스튜디오를 사용합니다. (pydev 사전 패키지). 이거 정말 좋다. 말할 것이 아무것도 없어.
v.oddou

52

cmd /k응용 프로그램을 닫은 후에도 유지되는 콘솔 창으로 모든 콘솔 응용 프로그램 (Python뿐만 아니라)을 여는 일반적인 방법입니다. 내가 생각할 수있는 가장 쉬운 방법은 Win + R을 누르고 cmd /k원하는 스크립트를 입력 한 다음 실행 대화 상자에 끌어다 놓는 것입니다.


3
환상적인 답변. 당신은 이것을 가지고 있어야합니다.
Jagu

1
python os.system 명령으로 fyi를 사용하면 os.system ( "cmd / k"+ myAppPath + ""+ myFlagsString)
Jay

1
cmd /kWindows 전용입니다. Mac 대안을 도와 드릴 수 없습니다. 죄송합니다.
tzot

Python 명령 자체를 포함하여 스크립트를 드래그해야합니까? 죄송합니다. 예를 들어주세요. 나는 창문 아래에서 파이썬에 익숙하지 않다.
Fandango68

1
이 답변은 가장 솔직했으며 Windows 환경에서 필요한 것을 정확하게 수행합니다. 프로그램이 실행되면 터미널 창이 열린 상태로 유지됩니다.
CameronAtkinson

41

이미 열려있는 cmd 창에서 스크립트를 시작하거나 스크립트 끝에 파이썬 2에서 이와 같은 것을 추가하십시오.

 raw_input("Press enter to exit ;)")

또는 파이썬 3에서 :

input("Press enter to exit ;)")

1
"모든 키"가 작동하지 않습니다. Enter will (또는 현재 위치에 따라 Ctrl + D) 만 작동합니다.
Daniel Andersson

1
@DanielAndersson yep, 텍스트를 변경 함
Anurag Uniyal

55
당신이 그것에 대해 생각한다면, 그것은 ... 단지 "입력" "종료"당신을 수 있다는 종류의 깊은의의
조엘 B

예외가 발생하면 터미널이 닫히게됩니다
Johnson

19

예외가 발생한 경우 창을 열어 두려면 (아직 예외를 인쇄하는 동안)

파이썬 2

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()

파이썬 3

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()

15

당신은 전에 답변을 결합 할 수 있습니다 : (Notepad ++ 사용자의 경우)

F5를 눌러 현재 스크립트를 실행하고 명령을 입력하십시오.

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

이런 식으로 메모장 ++ 파이썬 스크립트를 실행 한 후에 대화 형 모드를 유지하고 변수 등으로 놀 수 있습니다. :)


$ (FULL_CURRENT_PATH)를 Windows 경로 이름으로 변경하면 훌륭한 Windows 배치 파일이됩니다.
누 메논

플러그인 PyNPP를 가져 와서 실행할 바로 가기를 지정하는 것이 훨씬 쉽다는 것을 발견했습니다 (이전 F5 바로 가기를 비활성화하는 것을 잊지 마십시오)
JinSnow

11

다음 두 줄로 Windows 배치 파일을 만듭니다.

python your-program.py

pause

2
또는 파일 import os os.system("pause")의 끝.py
Spikatrix

4
이것은 원격으로도 올바른 유일한 대답입니다. 손상이 필요한 답변 모든 당신이 이제까지 실행 한 파이썬 스크립트raw_input기타 쓰레기는 단순히 잘못입니다. 파이썬이 기대하는 방식으로 명령 행에 명령을 입력하거나 1981 년 8 월 이후 정확하게이 목적 으로 MS-DOS와 함께 제공된 배치 언어 를 사용하십시오 .
케빈 J. 체이스

1
더 나은 사용 python %*그래서 지금 py_pause.bat 당신이 중 하나를 오른쪽 일시 중지 창을 열려면 평 파일을 클릭하거나 나는 또한 (PATH에) 내 Anaconda3 폴더에 넣어 있도록 프로그램은 "열린"중 하나로 설정 py_pause my-prog.py all my argscmd 라인에서 실행할 수 있습니다
brian

7

파이썬 2에서는 다음과 같이 할 수 있습니다 : raw_input ()

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

파이썬 3에서는 다음과 같이 할 수 있습니다 : input ()

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

또한 time.sleep (time)으로 할 수 있습니다.

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

나는 비슷한 문제가 있었다. Notepad ++ C:\Python27\python.exe "$(FULL_CURRENT_PATH)"에서는 코드가 종료 된 직후 cmd 창을 닫은 명령을 사용했습니다 .
이제 cmd /k c:\Python27\python.exe "$(FULL_CURRENT_PATH)"cmd 창이 열린 상태로 유지하고 있습니다.


1
Path 환경 변수 끝에 "; C : \ Python27"을 추가 할 수 있습니다. 그렇게하면 'cmd / k python -i "$ (FULL_CURRENT_PATH)"'로 단축 될 수 있습니다.-위의 대답에 정확한 내용과 유용한 -i가 있습니다.
Enigma

5

파이썬 3에서

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

트릭을 할 것입니다.


2

창을 열어 두려면 Anurag에 동의하며 짧은 계산 유형 프로그램을 위해 창을 열어 두었습니다.

텍스트가없는 커서 만 표시됩니다.

raw_input() 

다음 예제는 프로그램이 완료되었으며 프로그램 내의 다른 입력 프롬프트를 기다리지 않는다는 명확한 메시지를 제공합니다.

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

노트!
(1) 파이썬 3에서, 더 없다 raw_input을 () , 방금 입력 () .
(2) 작은 따옴표를 사용하여 문자열을 나타냅니다. 그렇지 않으면 "raw_input ()"과 같이 주위에 double을 입력하면 텍스트가 아니라 함수, 변수 등으로 간주됩니다.

이 다음 예제에서는 큰 따옴표를 사용 하며 "the"와 "function"사이에 따옴표가 있다고 생각하기 때문에 작동 하지 않습니다 .

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와 다음과 같이 scipt 경로 사이에 필요한 파이썬 실행 파일 이름을 추가하십시오.

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

감사! 이것은 실제로 많은 도움이되었습니다. 나는 리눅스 사용자이며 이것을 알아낼 수 없었다.
Michael Bruce

1

inputand과 별도로 (Python 2.5 + / 3) 또는 (모든 버전의 Python 2/3) 와 같은 raw_input무한 while루프를 사용할 수도 있습니다 . 그래도 컴퓨팅 성능을 사용할 수 있습니다.while True: passwhile 1: pass

명령 행에서 프로그램을 실행할 수도 있습니다. 입력 python명령 행 (맥 OS X 터미널)에 그리고 말을해야Python 3.?.? 그것은 그것이 당신의 파이썬 버전을 표시하거나라고하지 않습니다 (파이썬 버전) python: command not found, (enviromentl의 위에 나열된 값) / 유형을 PATH 값을 변경에 모습을 C:\(Python folder\python.exe. 성공하면 python또는 프로그램 C:\(Python installation)\python.exe전체 디렉토리 를 입력하십시오.


2
이것은 커피를 마시거나 잠을 자면서 차를 달리는 것과 같습니다! 여러 수준에서 위험
Fandango68

1

매우 뒤늦은 대답이지만 pythonbat.bat다음을 포함 하는 Windows Batch 파일을 만들었습니다 .

python.exe %1
@echo off
echo.
pause

그런 다음 지정 pythonbat.bat.py 파일 의 기본 핸들러 됩니다 .

이제 두 번 클릭하면 .py 파일 탐색기에서 파일을 새 콘솔 창이 열리고 Python 스크립트를 실행 한 다음 아무 키나 누를 때까지 일시 중지합니다 (열린 상태로 유지).

파이썬 스크립트를 변경할 필요가 없습니다.

여전히 콘솔 창을 열고 지정할 수 있습니다 python myscript.py 원하는지 수 있습니다 ...

(방금 @maurizio가 이미이 정확한 답변을 게시했습니다.)


0

cmd 창을 열어두고 실행중인 파일 디렉토리에 있으면 Windows 10에서 작동합니다.

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

0

win10의 py3 환경에 대한 솔루션은 관리자로 cmd 또는 powershell을 실행하는 것으로 나타 났으며 출력은 동일한 콘솔 창에 유지됩니다. 다른 유형의 사용자가 python 명령을 실행하면 python이 새 콘솔 창을 열게됩니다.


0

당신은 단지 쓸 수 있습니다

input()

코드 끝에서

따라서 스크립트를 실행할 때 무언가를 입력 할 때까지 기다립니다.

{ENTER for example}

-1

PowerShell을 열고 "python"을 입력 할 수 있습니다. Python을 가져온 후 원하는 텍스트 편집기에서 소스 코드를 복사하여 붙여 넣어 코드를 실행할 수 있습니다.

창이 닫히지 않습니다.


-2
  1. 이동 여기에 메모장을 다운로드하여 설치하십시오 ++
  2. 이동 여기에 3이 아닌 Python 2.7을 다운로드하여 설치 .
  3. Powershell을 시작하십시오. 다음을 입력. [Environment]::SetEnvironmentVariable("Path", "$env:Path;C:\Python27", "User")
  4. Powershell을 닫았다가 다시여십시오.
  5. 프로그램의 디렉토리를 만드십시오. mkdir 스크립트
  6. 해당 디렉토리 CD 스크립트를여십시오.
  7. Notepad ++에서 새 파일 형식으로 : print "hello world"
  8. 파일을 hello.py로 저장하십시오.
  9. powershell로 돌아가서 dir을 입력하여 올바른 디렉토리에 있는지 확인하십시오. hello.py 파일이 있어야합니다.
  10. Powershell 프롬프트에서 다음을 입력하십시오. python hello.py

-2

창을 열어 두는 간단한 해킹 :

counter = 0

While (True):

    If (counter == 0):

        # Code goes here

    counter += 1

카운터는 코드 자체가 반복되지 않도록합니다.


-2

가장 간단한 방법 :

import time

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

이렇게하면 코드가 1 분 동안 그대로 둔 다음 닫힙니다.


1
당신이 진심으로 감히. 너무 불필요합니다. 그것은이 질문에 관한 것이 아니며 당신도 알고 있습니다.
Redgar Tech

-3

Windows 10에서 이것을 시작하면 삽입하십시오.

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

이상하지만 나를 위해 작동합니다! (물론 끝에 input ()과 함께)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.