【发布时间】:2014-07-21 13:16:02
【问题描述】:
我有一个代码,它从名为 001.txt、002.txt、...、411.txt 的多个文件中读取数据。我想从每个文件中读取数据,绘制它们,并保存为 001.jpg、002.jpg、...、411.jpg。
我可以通过循环文件来做到这一点,但我想使用多进程模块来加快速度。
但是,当我使用下面的代码时,计算机挂起 - 我无法单击任何内容,但鼠标移动,声音继续。然后我必须关闭计算机。
我显然误用了 matplotlib 的多进程模块。我使用了与以下代码非常相似的东西来实际生成数据,并毫无问题地保存到文本文件中。我错过了什么?
import multiprocessing
def do_plot(number):
fig = figure(number)
a, b = random.sample(range(1,9999),1000), random.sample(range(1,9999),1000)
# generate random data
scatter(a, b)
savefig("%03d" % (number,) + ".jpg")
print "Done ", number
close()
for i in (0, 1, 2, 3):
jobs = []
# for j in chunk:
p = multiprocessing.Process(target = do_plot, args = (i,))
jobs.append(p)
p.start()
p.join()
【问题讨论】:
-
我应该补充一点,我有一台运行 Linux Mint 的四核机器。我也是通过pylab操作python的。
标签: python matplotlib multiprocessing