我一直在使用输入函数作为暂停脚本的一种方式:

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

其他回答

为了跨Python 2/3兼容性,你可以通过六个库使用输入:

import six
six.moves.input( 'Press the <ENTER> key to continue...' )
print ("This is how you pause")

input()

跨平台的方式;工作无处不在

import os, sys

if sys.platform == 'win32':
    os.system('pause')
else:
    input('Press any key to continue...')

我认为停止执行的最好方法是time.sleep()函数。

如果你只需要在某些情况下暂停执行,你可以简单地实现一个If语句,就像这样:

if somethinghappen:
    time.sleep(seconds)

您可以让else分支为空。

我想我喜欢这个解决方案:

import getpass
getpass.getpass("Press Enter to Continue")

它隐藏了用户输入的任何内容,这有助于澄清这里没有使用输入。

但是要注意OS X平台。它显示了一个可能令人困惑的键。


最好的解决方案可能是自己执行类似getpass模块的操作,而不执行read -s调用。也许让前景色与背景颜色相匹配?