我想加快我编码的整个管道线。管道的起点是从目录中读取大量文件并进行处理。我阅读它们并创建一个字典以便进一步处理。我想知道字典的阅读部分和创作部分是否可以在并行模式下完成。
假设文件具有以下结构:
<doc id="22223423235">
<relatedDoc score="-0.079590" />
<relatedDoc score="-0.134223" />
<relatedDoc score="-0.106678" />
<relatedDoc score="-0.183504" />
<relatedDoc score="-0.179214" />
<relatedDoc score="-0.044658" />
</doc>
处理完文件后,我把它放在一个字典中,每个文件都是字典的一个关键字:
for filename in os.listdir(os.path.expanduser(dir_path)):
with open(os.path.expanduser(dir_path + filename), 'rb') as data_file:
first_line = data_file.readline()
t = generate_tuple(first_line)
if id not in data_dict[id]:
data_dict[id].append(tag_score_tuple)
x = sorted(data_dict[id], key=lambda tup: tup[1], reverse=True)
data_dict[id] = x
如何在并行模式下执行此操作?
基本上我所想的不是顺序文件读取,我应该旋转多个线程,每个线程处理一个文件。然后可以通过多个线程访问字典吗?
我目前正在尝试遵循以下指南: https://pythonhosted.org/joblib/parallel.html这是正确的方法吗?