Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 如何将从Python并行计算中获得的列表保存到文件中?_Python 3.x_Parallel Processing_Multiprocessing - Fatal编程技术网

Python 3.x 如何将从Python并行计算中获得的列表保存到文件中?

Python 3.x 如何将从Python并行计算中获得的列表保存到文件中?,python-3.x,parallel-processing,multiprocessing,Python 3.x,Parallel Processing,Multiprocessing,我的(Python 3)代码如下所示: 来自itertools导入产品的 从multiprocessing.pool导入池 x=[1,2,3,4,5] 梳=乘积(x,x) 池=池() 结果=pool.starmap(my_函数,comb) 其中my_函数为每个comb项返回多个列表(基本上是列表列表)。由于返回的列表数量最终消耗了我所有的RAM,因此我希望在列表生成时将其保存到一个文件中 我知道,如果我只写pool.starmap(我的函数,comb)而不将其分配给results,列表将打印到

我的(Python 3)代码如下所示:

来自itertools导入产品的

从multiprocessing.pool导入池
x=[1,2,3,4,5]
梳=乘积(x,x)
池=池()
结果=pool.starmap(my_函数,comb)
其中
my_函数
为每个
comb
项返回多个列表(基本上是列表列表)。由于返回的列表数量最终消耗了我所有的RAM,因此我希望在列表生成时将其保存到一个文件中

我知道,如果我只写
pool.starmap(我的函数,comb)
而不将其分配给
results
,列表将打印到屏幕上。如何改为保存到文件

我是否应该重写
my_函数
以附加到文件并将文件名作为
comb
中每个元组的第三个元素传递?打开文件这么多次,不会让我的代码慢很多吗

Q:如何改为保存到文件

用户可以根据需求定义自己的文件I/O处理,也可以重复使用已经在工作的框架,如
日志记录模块中的智能框架

Q:打开文件这么多次,不会让我的代码慢很多吗

日志记录
模块可以将所有源于
日志记录
的消息分派到系统的syslog服务中,或分派到
队列
实例中(对于源自并发处理方案的
多处理
joblib
中基于进程的后端,它们不共享python对象,同时有意将其分离为自治进程),因此避免了所有“手动”文件I/O操作,并让服务为您工作


有关整合分布式计算消息的更多详细信息,以及在
my_function
中写入文件将是最直接的方法。所有内容都保存到同一个文件中?是的,我希望所有内容都保存到同一个文件中。每行列出一个空格分隔值是最佳选择。您能否提供my_函数的示例输出,那会有帮助的。