python教程—多处理一个for循环?-Python实用宝典

python教程—多处理一个for循环?

我有一个数组(称为data_input),其中包含数百个天文学图像文件的名称。然后对这些图像进行处理。我的代码工作,并需要几秒钟来处理每个图像。然而,它一次只能做一个图像,因为我运行数组通过一个for循环:

我有一个数组(称为data_input),其中包含数百个天文学图像文件的名称。然后对这些图像进行处理。我的代码工作,并需要几秒钟来处理每个图像。然而,它一次只能做一个图像,因为我运行数组通过一个for循环:

    for name in data_inputs: sci=fits.open(name+'.fits') #image is manipulated

我没有理由必须先修改一个映像,所以是否可以使用我机器上的所有4个内核,每个内核在不同的映像上运行for循环?

我读过关于多处理模块的介绍,但是我不确定如何在我的案例中实现它。
我热衷于让多处理工作,因为最终我将不得不在10000多张图像上运行这个。

回答

您可以简单地使用multiprocessing.Pool:

    from multiprocessing import Pool def process_image(name): sci=fits.open('{}.fits'.format(name)) <process> if __name__ == '__main__': pool = Pool() # Create a multiprocessing Pool pool.map(process_image, data_inputs) # process data_inputs iterable with pool

​Python实用宝典 (pythondict.com)
不只是一个宝典
欢迎关注公众号:Python实用宝典

本文由 Python实用宝典 作者:Python实用宝典 发表,其版权均为 Python实用宝典 所有,文章内容系作者个人观点,不代表 Python实用宝典 对观点赞同或支持。如需转载,请注明文章来源。
0

发表评论