Python多处理实现问题-Pool.imap()似乎跳过了生成器(glob.iglob())中的项目

时间:2019-12-11 10:42:38

标签: python python-multiprocessing

我正在尝试解析某些包含数据的.txt文件。而且我正在尝试使用多处理来加快过程。要首先在大目录中找到这些.txt文件,我使用glob.iglob('/**/*.txt', recursive=True),这是一个生成器,它会在找到文件时生成文件路径。因此,要将生成器与多处理结合使用,我实现了pool.imap()来解析找到的文件。以下代码位于我的if __name__ == '__main__'部分:

pool = mp.Pool(mp.cpu_count())
pool.imap(process_file, (filepath for filepath in glob.iglob(searchdirectory + '/**/*.txt', recursive=True)))
pool.close()
pool.join()

起初,此代码似乎可以正常工作,但是当我查看结果时,它跳过了一些应该在目录中找到的文件。我执行错误吗?还是可能是错误?

0 个答案:

没有答案