进程后期Python的持久化状态

进程后期Python的持久化状态,python,persistence,recovery,Python,Persistence,Recovery,假设我有代码: if __name__ == "__main__": j = 0 while True: j = j + 1 print j time.sleep(1) 如果ctrl +c,或者如果在运行期间关闭程序窗口,有没有办法在进程结束之前保持进程的状态?然后从它死的那一刻开始恢复进程?如果python中没有,还有其他语言具有此功能吗?Crtl+C。您可以将代码放入try-except块中,并在退出之前处理键盘中断 import

假设我有代码:

if __name__ == "__main__":
    j = 0
    while True:
       j = j + 1
       print j
       time.sleep(1)
如果ctrl +c,或者如果在运行期间关闭程序窗口,有没有办法在进程结束之前保持进程的状态?然后从它死的那一刻开始恢复进程?如果python中没有,还有其他语言具有此功能吗?

Crtl+C。您可以将代码放入try-except块中,并在退出之前处理键盘中断

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的值。

这会保存一些数据,而不是程序的状态。例如,你不能在程序停止的地方继续程序。你完全正确,这是对op问题的错误回答。效果很好。Windows Idle有一个不错的异常后堆栈查看器。