每当我运行程序时按CTRL-C,它会显示正在执行的行,然后说:
Keyboard Interrupt
但是,我正在运行一个将信息附加到文本文件的程序。有人按下CTRL-C,它只会附加代码在被中断之前要做的事情。
我听说过try and except
但是如果我在开始时调用它并且有人在尝试阶段按下CTRL C,那么它是否有效?
我如何做到这一点,如果程序中的任何人按下CTRL-C它将无法运行程序,还原到目前为止所做的一切并说:
Exiting Program
答案 0 :(得分:2)
自己尝试一下:
这是有效的(如果代码在你的机器上执行得太快,在for
循环迭代器中添加一个零):
a = 0
try:
for i in range(1000000):
a = a + 1
except (KeyboardInterrupt, SystemExit):
print a
raise
print a
这不起作用,因为数据会保存到文件之间。 try
块不会撤消将数据保存到文件中。
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
这很有效。数据仅保存在最后。
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))
因此,请在try
块内准备信息,然后保存。
另一种可能性:使用原始数据保存临时备份文件,并将备份文件重命名为except块中的原始文件名。