运行 多个可执行文件一次通过 python
Running multiple executable files via python at once
我有一个目录,其中包含需要 运行ning 的文件列表。这些都是计算量很大的任务,所以我正在寻找 运行 多个文件的最佳方法 once.My 任务提交的第一个函数是:
def copasiSE_batch_run(self):
os.chdir(self.IA_dir) #dir containing files
count=0
for i in glob.glob('*.cps'):
os.system('CopasiSE '+i)
count = count+1
print '\n\n\n {}:\tProfile liklihood for {} has been calcualted'.format(count,i)
这很好并且有效,但只使用一个进程,等待一个文件完成 运行然后 运行 下一个。由于这些是独立的任务,所以如果我能同时进行更多工作就好了。然后我尝试了:
def copasiSE_batch_run_subprocess(self):
os.chdir(self.IA_dir)
for i in glob.glob('*.cps'):
command='CopasiSE '+i
subprocess.Popen( command)
这也有效,但给了我相反的问题。我有 32 个文件需要 运行ning,这个函数似乎一次 运行 它们,所以我的电脑在它完成之前基本上无法使用。在一次 运行ning 程序数量和剩余足够的计算机能力来执行一些相当低强度的任务之间找到良好平衡的最佳方法是什么?
导入时间并使用 time.sleep(60)。如果你把它放在你的 for 循环中,并在参数中留出合理的时间,你可以一次减少进程的数量 运行,但一次仍然有一个 运行。
我有一个目录,其中包含需要 运行ning 的文件列表。这些都是计算量很大的任务,所以我正在寻找 运行 多个文件的最佳方法 once.My 任务提交的第一个函数是:
def copasiSE_batch_run(self):
os.chdir(self.IA_dir) #dir containing files
count=0
for i in glob.glob('*.cps'):
os.system('CopasiSE '+i)
count = count+1
print '\n\n\n {}:\tProfile liklihood for {} has been calcualted'.format(count,i)
这很好并且有效,但只使用一个进程,等待一个文件完成 运行然后 运行 下一个。由于这些是独立的任务,所以如果我能同时进行更多工作就好了。然后我尝试了:
def copasiSE_batch_run_subprocess(self):
os.chdir(self.IA_dir)
for i in glob.glob('*.cps'):
command='CopasiSE '+i
subprocess.Popen( command)
这也有效,但给了我相反的问题。我有 32 个文件需要 运行ning,这个函数似乎一次 运行 它们,所以我的电脑在它完成之前基本上无法使用。在一次 运行ning 程序数量和剩余足够的计算机能力来执行一些相当低强度的任务之间找到良好平衡的最佳方法是什么?
导入时间并使用 time.sleep(60)。如果你把它放在你的 for 循环中,并在参数中留出合理的时间,你可以一次减少进程的数量 运行,但一次仍然有一个 运行。