Python中的C#Parallel.Foreach等价物

Python中的C#Parallel.Foreach等价物,c#,python,parallel-processing,parallel.foreach,C#,Python,Parallel Processing,Parallel.foreach,我有96个txt文件需要处理。现在我使用for循环,一次只做一个,这个过程非常慢。生成的96个文件不需要合并。有没有办法让它们并行运行,alaparallel.foreach在C#中? 当前代码: for src_name in glob.glob(source_dir+'/*.txt'): outfile = open (...) with open(...) as infile: for line in infile: --PROCESS--

我有96个txt文件需要处理。现在我使用for循环,一次只做一个,这个过程非常慢。生成的96个文件不需要合并。有没有办法让它们并行运行,alaparallel.foreach在C#中? 当前代码:

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中的所有文件并行运行。

假设限制因素确实是处理而不是I/O,您可以使用它在多个CPU上轻松运行循环

A:


该过程需要很长时间,还是这是读数?对于具有GIL(全局解释器锁)的CPython,您需要使用
多处理
模块。但是你很幸运,因为有许多第三方库是在并行计算的多处理之上制作的。@Thomas:96个文件的总处理时间非常慢。我试图提高单个文件的处理时间,但如果能像在C#@Reise45中一样简单地使用并行线程,那就太好了。它总是相同的96个文件吗?处理过程有多长(以行为单位)?
>>> from math import sqrt
>>> from joblib import Parallel, delayed
>>> Parallel(n_jobs=2)(delayed(sqrt)(i ** 2) for i in range(10))
[0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0]