正确的方法来暂停Python程序

我一直在使用input函数来暂停我的脚本

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

有没有正式的方法来做到这一点?

对我来说似乎很好(或Python 2.X中的raw_input() )。 或者,如果你想暂停一定的秒数,你可以使用time.sleep()

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

我假设你想暂停而没有input

使用

time.sleep(秒)

使用:

 import os os.system("pause") 

所以,我发现这在我的编码工作中工作得非常好。 我只是我的程序开始时创build了一个函数

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

现在我可以使用pause()函数,只要我需要,就像我正在写一个batch file。 例如 ,在这样的程序中:

 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

正如mhawke和steveha的评论所指出的那样,这个确切问题的最好答案是:

对于长文本块,最好在Python 2.x中使用input('Press <ENTER> to continue') (或raw_input('Press <ENTER> to continue') )来提示用户,而不是时间延迟。 快速读者不希望等待延迟,慢读者可能需要更多的时间延迟,有人可能会在阅读中断,并希望有更多的时间,等等。而且,如果有人使用该程序很多,他/她可能会习惯于如何工作,甚至不需要阅读长文本。 让用户控制文本块显示多长时间才能阅读。

我有一个类似的问题,我正在使用信号:

 import signal def signal_handler(signal_number, frame): print "Proceed ..." signal.signal(signal.SIGINT, signal_handler) signal.pause() 

所以你注册信号SIGINT的处理程序,并暂停等待任何信号。 现在从你的程序之外(例如在bash中),你可以运行kill -2 <python_pid> ,它会发送信号2(即SIGINT)到你的python程序。 您的程序将调用您的注册处理程序并继续运行。

很简单:

 raw_input("Press Enter to continue ...") exit() 

我认为停止执行的最好方法是time.sleep()函数。 如果只需要在某些情况下暂停执行,则可以简单地实现如下的if语句:

 if somethinghappen: time.sleep(seconds) 

你可以把else分支留空。