在https://stackoverflow.com/a/22391379/9088305和APT command line interface-like yes/no input?的帮助下,我已经能够构建一个等待一段时间的小脚本,但可以通过按Enter来中断。
import sys, select, os, time
from distutils.util import strtobool
for i in range(100):
sys.stdout.write("\r")
sys.stdout.write("Wait for {:2d} seconds. Press Enter to continue".format(i))
sys.stdout.flush()
time.sleep(1)
if sys.stdin in select.select([sys.stdin], [], [], 0)[0]:
check = 0
while not check:
userin = raw_input("Are you sure you want to continue? (yes/no)")
try:
bool = strtobool(userin)
if bool:
check = 1
break
else:
print("Let's continue then")
time.sleep(1)
break
except ValueError:
check = 0
print("Choose either yes or no, please")
if check == 1:
break
print "\nDone!"
然而,在执行时,它总是会给出一个问题,一个""选择是或否,请"之后:
您确定要继续吗? (是/否)选择是或否,请确定要继续吗? (是/否)
我还没弄清楚为什么会这样。有人可以帮我吗?所以我可以得到"你确定要继续吗? (是/否)"一次,我可以放入是或否。
提前致谢!