我正在尝试解析某些包含数据的.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()
起初,此代码似乎可以正常工作,但是当我查看结果时,它跳过了一些应该在目录中找到的文件。我执行错误吗?还是可能是错误?