持久化过程Python的状态

时间:2014-12-07 15:48:26

标签: python persistence recovery

假设我有代码:

if __name__ == "__main__":
    j = 0
    while True:
       j = j + 1
       print j
       time.sleep(1)

如果我按Ctrl + C或者如果我在运行时中间关闭程序窗口,有没有办法在进程死之前保持进程的状态?然后从死亡的确切点恢复过程?如果没有在python中是否有任何其他语言具有此功能?

1 个答案:

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