【发布时间】:2020-03-19 01:39:02
【问题描述】:
我正在 python 中创建一种交互式命令行。我有这样的事情:
def complete_menu():
while True:
cmd = input('cmd> ')
if cmd == "help":
print('help')
elif cmd == "?":
print('?')
当用户按下 CTRL-C,而不是退出程序时,我试图让它打印“请键入 exit 以退出”并返回到 while True。我现在有这样的事情:
if __name__ == "__main__":
try:
main()
except KeyboardInterrupt:
print('Please use exit to exit')
complete_menu()
虽然这可行,但存在许多问题。首先,当第一次按下 CTRL-C 时,它会打印出文本并完美运行。但是,当用户第二次按下 CTRL-C 时,它会像其他任何程序一样在按下 CTRL-C 后出现一堆乱七八糟的文本。这可以解决吗?
【问题讨论】:
标签: python python-3.x keyboardinterrupt