正确的方法来暂停Python程序

Ran*_*bia 145 python

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

print("something")
wait = input("PRESS ENTER TO CONTINUE.")
print("something")
Run Code Online (Sandbox Code Playgroud)

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

mha*_*wke 194

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

import time
print("something")
time.sleep(5.5)    # pause 5.5 seconds
print("something")
Run Code Online (Sandbox Code Playgroud)

  • 对于长文本块,最好使用`input()`(或Python 2.x上的`raw_input()`来提示用户,而不是时间延迟.快速阅读者不希望等待延迟,慢读者可能希望有更多时间延迟,有人可能在阅读时被打断并且想要更多时间等等.此外,如果有人使用该程序很多,他/她可能习惯了它的工作原理,甚至不需要阅读长文本.让用户控制文本块显示多长时间以便阅读会更友好. (8认同)
  • 只需使用`print`显示长文本块,然后使用`input()`或`raw_input('按<ENTER>继续')`以适合您的Python版本. (7认同)

Cha*_*ish 23

使用:

import os
os.system("pause")
Run Code Online (Sandbox Code Playgroud)

  • 这是Windows特定的,而所有现有答案都是独立于平台的. (21认同)
  • 我知道这可能不是问题想要的,但它对我帮助很大。 (6认同)
  • 为什么 python 会实现特定于操作系统的函数?这个不成立。 (2认同)
  • os.system() 调用一个名为“pause”的系统函数 - 例如,ubuntu 不知道“pause”是什么,因此它将返回:_sh: 1:pause: notfound_ (2认同)

8bi*_*ide 19

我假设你想在没有输入的情况下暂停

使用

time.sleep(秒)

  • 这需要“导入时间”。 (5认同)

Cet*_*her 15

所以,我发现这在我的编码工作中非常有效.我只是程序的最开始创建了一个函数,

def pause():
    programPause = raw_input("Press the <ENTER> key to continue...")
Run Code Online (Sandbox Code Playgroud)

现在我可以随时使用该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()
Run Code Online (Sandbox Code Playgroud)

现在显然这个程序没有目标,只是为了举例,但你可以准确理解我的意思.

注意:对于Python 3,您需要使用input而不是raw_input

  • 这与问题中所述有何不同? (2认同)

小智 7

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

import signal

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

signal.signal(signal.SIGINT, signal_handler)
signal.pause()
Run Code Online (Sandbox Code Playgroud)

因此,您为信号SIGINT注册一个处理程序并暂停等待任何信号.现在从您的程序外部(例如在bash中),您可以运行kill -2 <python_pid>,它将向您的python程序发送信号2(即SIGINT).您的程序将调用您的注册处理程序并继续运行.

  • 请注意,这不能跨平台移植,例如。在 Windows 上没有`signal.pause`。 (4认同)

小智 7

我使用以下python2和3来暂停代码执行,直到用户按下ENTER

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


shb*_*789 6

非常简单:

raw_input("Press Enter to continue ...")
exit()
Run Code Online (Sandbox Code Playgroud)


ntg*_*ntg 5

正如mhawkesteveha的评论所指出的,这个确切问题的最佳答案是:

对于较长的文本块,最好使用input('Press <ENTER> to continue')(或raw_input('Press <ENTER> to continue')在 Python 2.x 上)来提示用户,而不是时间延迟。快速的读者不想等待延迟,慢的读者可能需要更多的延迟时间,有人可能在阅读时被打断并想要更多的时间等等。此外,如果有人经常使用该程序,他/她可能会习惯它的工作方式,甚至不需要阅读长文本。让用户控制文本块显示多长时间以供阅读更友好。


小智 5

Print ("This is how you pause")

input()
Run Code Online (Sandbox Code Playgroud)