[python] 파이썬 프로그램을 일시 정지하는 올바른 방법

input스크립트를 일시 중지하는 방법으로 함수를 사용하고 있습니다.

print("something")
wait = input("PRESS ENTER TO CONTINUE.")
print("something")

이것을 수행하는 공식적인 방법이 있습니까?



답변

나에게 잘 보인다 (또는 raw_input()Python 2.X에서). 또는 time.sleep()특정 시간 (초) 동안 일시 중지하려는 경우 사용할 수 있습니다 .

import time
print("something")
time.sleep(5.5)    # pause 5.5 seconds
print("something")


답변

창에만 사용하십시오 :

import os
os.system("pause")


답변

입력하지 않고 일시 중지하고 싶다고 가정합니다.

사용하다

시간 수면 (초)


답변

그래서, 나는 이것이 코딩 작업에서 잘 작동한다는 것을 알았습니다. 프로그램 시작시 간단히 함수만들었습니다.

def pause():
    programPause = raw_input("Press the <ENTER> key to continue...")

이제 pause()배치 파일을 작성하는 것처럼 필요할 때마다 함수 를 사용할 수 있습니다 . 예를 들어 , 다음 과 같은 프로그램에서 :

import os
import system

def pause():
    programPause = raw_input("Press the <ENTER> key to continue...")

print("Think about what you ate for dinner last night...")
pause()

이제 분명히이 프로그램은 목표가 없으며 단지 예를 들기위한 것이지만, 내가 의미하는 바를 정확하게 이해할 수 있습니다.

참고 : Python 3의 경우 input와 반대로 사용해야 합니다.raw_input


답변

나는 비슷한 질문을했고 신호를 사용하고 있었다 :

import signal

def signal_handler(signal_number, frame):
    print "Proceed ..."

signal.signal(signal.SIGINT, signal_handler)
signal.pause()

따라서 SIGINT 신호 처리기를 등록하고 신호 대기를 일시 중지합니다. 이제 프로그램 외부 (예 : bash)에서을 실행하면 kill -2 <python_pid>python 프로그램에 신호 2 (예 : SIGINT)가 전송됩니다. 프로그램은 등록 된 핸들러를 호출하고 실행을 계속합니다.


답변

python사용자가 누를 때까지 2와 3에 다음을 사용하여 코드 실행을 일시 중지합니다.ENTER

import six
if six.PY2:
    raw_input("Press the <ENTER> key to continue...")
else:
    input("Press the <ENTER> key to continue...")


답변

mhawkesteveha 의 의견에서 지적 했듯이이 정확한 질문에 대한 가장 좋은 대답은 다음과 같습니다.

긴 텍스트 블록의 경우 시간 지연보다는 사용자에게 프롬프트하는 데 input('Press <ENTER> to continue')(또는 raw_input('Press <ENTER> to continue')Python 2.x에서) 가장 좋습니다 . 빠른 독자는 지연을 기다리지 않고, 느린 독자는 지연에 더 많은 시간을 원하고, 누군가 읽는 동안 중단되어 더 많은 시간을 원할 수 있습니다. 또한 누군가가 프로그램을 많이 사용하면 그녀는 그것이 작동하는 방식에 익숙해 질 수 있으며 긴 텍스트를 읽을 필요조차 없습니다. 텍스트 블록을 읽는 데 얼마나 오래 표시되는지 사용자가 제어 할 수있게하는 것이 더 친숙합니다.