并行将多个泡菜保存到一个文件中

问题描述

我知道我可以将多个泡菜保存到一个文件

import pickle
from joblib import Parallel,delayed

def g(val,f):
    ## do some stuff 
    t = "." + val
    pickle.dump(t,f)
    
def loadall(pick):
    with open(pick,'rb') as f:
        while True:
            try:
                yield(pickle.load(f))
            except:
                break
    

fname = 'pickle.pickle'
with open(fname,'wb') as f:
    [g(val,f) for val in list("ABCDEFG")] ## serial
    #Parallel(n_jobs=4)(delayed(g)(val,f) for val in list("ABCDEFG")) ## parallel

[print(r) for r in loadall(fname)]

有什么办法可以并行执行此操作吗?切换到并行循环会引发异常: TypeError:无法腌制'_io.BufferedWriter'对象

我知道我可以保存不同的泡菜并在处理结束时将它们加入,但是写入同一文件更加干净。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)