【发布时间】:2015-05-28 00:01:22
【问题描述】:
我有 96 个 txt 文件需要处理。现在我正在使用一个 for 循环,一次只做一个,这个过程非常慢。生成的 96 个文件,不需要合并。有没有办法让它们并行运行,比如 C# 中的 Parallel.foreach? 当前代码:
for src_name in glob.glob(source_dir+'/*.txt'):
outfile = open (...)
with open(...) as infile:
for line in infile:
--PROCESS--
for --condition--:
outfile.write(...)
infile.close()
outfile.close()
希望此进程对 source_dir 中的所有文件并行运行。
【问题讨论】:
-
这个过程是否需要很长时间,或者这是读数?
-
对于具有 GIL(全局解释器锁)的 CPython,您需要使用
multiprocessing模块。但是你很幸运,因为已经有许多第三方库基于多处理并行计算。 -
@Thomas:96个文件的总处理时间很慢。我正在尝试改善单个文件的处理时间,但如果有并行线程就像它在 C# 中的完成方式一样简单,那就太好了
-
@Reise45 是总是相同的 96 个文件吗?处理多长时间(以行为单位)?
标签: c# python parallel-processing parallel.foreach