2014-02-23 54 views
1

我有一个效率低下的模拟运行(它已运行约24小时)。终止Python程序,但恢复数据

它可以分成3个独立的部分,所以我想取消模拟,并开始一个更高效的模拟,但仍然恢复已经为第一部分计算的数据。

例如,在程序中发生错误时,您仍然可以访问脚本正在处理的数据,并检查它以查看出错的地方。

有没有办法在不丢失数据的情况下手动杀死进程?

+0

这取决于您如何以及在何处评分数据以及脚本的外观如何,但是如果您使用命令行中的-i选项启动脚本,则会在异常后返回到python shell并且应该能够从那里手动检查堆栈。 – Moritz

+0

我正在使用IDLE。数据只是存储在一个列表中。 –

+0

只需将数据写入文件并在每个条目写入文件后进行刷新即可。在你终止python解释器之后,该文件包含目前为止所有内容。 –

回答

2

您可以在单独的会话中启动一个调试器,如winpdb或几个IDE调试器中的任意一个,附加到正在运行的进程(暂停它),在有权访问的代码段中设置一个断点到你的数据,恢复直到你到达中断点,然后将你的数据保存到一个文件中,然后你的新进程可以加载这些数据作为起点。