假设我有代码:
if __name__ == "__main__":
j = 0
while True:
j = j + 1
print j
time.sleep(1)
如果我按Ctrl + C或者如果我在运行时中间关闭程序窗口,有没有办法在进程死之前保持进程的状态?然后从死亡的确切点恢复过程?如果没有在python中是否有任何其他语言具有此功能?
答案 0 :(得分:-1)
Crtl + C引发KeyboardInterrupt。您可以将代码放在try除了块之外,并在退出之前处理KeyboardInterrupt。
import sys
import time
if __name__ == "__main__":
j = 0
try:
while True:
j = j + 1
print(j)
time.sleep(1)
except KeyboardInterrupt:
with open('myprog.dat', 'r') as f:
f.write('j = {}'.format(j))
sys.exit("Data saved!")
您还可以检查数据文件是否存在,并从数据文件中读取以初始化j的值。