How to display a message if user presses CTRL C or uses keyboard Interupt?
本问题已经有最佳答案,请猛点这里访问。
每当我运行程序时按CTRL-C,它会显示它正在执行的行,然后说:
1 | Keyboard Interrupt |
但是,我正在运行一个程序,将信息附加到文本文件。 有人按下CTRL-C,它只会附加代码在被中断之前要做的事情。
我听说过
我怎么做到这样,如果在程序中任何时候有人按下CTRL-C它将不会运行该程序,还原它到目前为止所做的一切,并说:
1 | Exiting Program |
亲自尝试一下:
这是有效的(如果代码在您的机器上执行得太快,则在
1 2 3 4 5 6 7 8 9 10 | a = 0 try: for i in range(1000000): a = a + 1 except (KeyboardInterrupt, SystemExit): print a raise print a |
这不起作用,因为数据保存在其间的文件中。
1 2 3 4 5 6 7 8 9 10 11 | a = 0 try: for i in range(1000000): if a == 100: with open("d:/temp/python.txt","w") as file: file.write(str(a)) a = a + 1 except (KeyboardInterrupt, SystemExit): raise |
这有效。 数据仅保存在最后。
1 2 3 4 5 6 7 8 9 10 | a = 0 try: for i in range(1000000): a = a + 1 except (KeyboardInterrupt, SystemExit): raise with open("d:/temp/python.txt","w") as file: file.write(str(a)) |
因此,在
另一种可能性:使用原始数据保存临时备份文件,并将备份文件重命名为except块中的原始文件名。