我希望用户使用 control-c 来关闭脚本,但是当按下 control-c 时,它会显示错误和关闭原因(这是有道理的)。有没有办法让我自己的自定义输出到屏幕而不是显示的内容?不确定如何处理该特定错误。
问问题
2206 次
3 回答
6
你可以try..except
用来捕捉键盘中断:
import time
def main():
time.sleep(10)
if __name__ == '__main__':
try:
main()
except KeyboardInterrupt:
print('bye')
于 2013-07-08T18:36:15.857 回答
1
使用信号模块为 SIGINT 信号定义处理程序:
import signal
import sys
def sigint_handler(signal_number, stack_frame):
print('caught SIGINT, exiting')
sys.exit(-1)
signal.signal(signal.SIGINT, sigint_handler)
raw_input('waiting...')
于 2016-01-14T00:33:15.773 回答
0
对于通用代码,处理 KeyboardInterrupt 就足够了。对于高级代码,例如线程,这是一个完全不同的故事。这是一个简单的例子。
http://docs.python.org/2/library/exceptions.html#exceptions.KeyboardInterrupt
try:
while 1:
x = raw_input("Type something or press CTRL+C to end: ")
print repr(x)
except KeyboardInterrupt:
print "\nWe're done here."
于 2013-07-08T18:41:30.440 回答