Python:并行化读取和处理许多文件

时间:2015-03-13 19:36:18

标签: python multithreading dictionary parallel-processing

我想加快我编码的整个管道线。管道的起点是从目录中读取大量文件并进行处理。我阅读它们并创建一个字典以便进一步处理。我想知道字典的阅读部分和创作部分是否可以在并行模式下完成。

假设文件具有以下结构:

<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这是正确的方法吗?

0 个答案:

没有答案