运行时访问python程序数据

时间:2015-03-24 13:05:52

标签: python multithreading data-recovery

我有一个已经运行了一段时间的python程序,由于一个意料之外的事件,我现在不确定它会在合理的时间内完成。然而,到目前为止收集的数据很有价值,如果可能的话我想恢复它。

以下是相关代码

from multiprocessing.dummy import Pool as ThreadPool 
def pull_details(url):
    #accesses a given URL
    #returns some data which gets appended to the results list

pool = ThreadPool(25) 

results = pool.map(pull_details, urls)
pool.close() 
pool.join() 

所以我要么需要访问当前位于results的数据,要么以某种方式更改代码的来源(或者以某种方式手动更改程序的控制)以终止循环,以便继续导出数据的程序的后续部分(不确定第二种方式是否可行)。

似乎第一个选项也很棘手,但幸运的是我使用的IDE(Spyder)表示我假设的值是机器内存中列表的位置( 0xB73EDECCL)。

是否可以创建一个C程序(或其他python程序)来访问内存中的这个位置并阅读那里的内容?

1 个答案:

答案 0 :(得分:0)

您是否可以使用某种机制在两个进程(如队列或管道)之间交换数据。

如下所示:     来自多处理导入队列     从multiprocessing.dummy导入池作为ThreadPool

def pull_details(args=None):
  q.put([my useful data])

q = Queue()
pool = ThreadPool(25) 

results = pool.map(pull_details(args=q), urls)
while not done:
    results = q.get()
pool.close() 
pool.join()