Python:按顺序运行bash命令

时间:2018-09-20 00:14:39

标签: python popen

我正在目录中的一堆*.in文件上运行可执行文件。我的脚本一次转储了所有命令。我想在较早的过程终止后按顺序运行Popen。这是我的脚本:

import glob, os, subprocess
import sys, re, math

exec_path='/Users/me/path/to/exec'
for name in glob.glob("*.in"):
    print name
    output = name+'.out'
    args = [exec_path, '-o', output, name]
    subprocess.Popen(args)

感谢您的时间。

1 个答案:

答案 0 :(得分:2)

听起来像您需要wait才能使过程结束,然后继续循环。

您的示例可以这样重写;

import glob
import subprocess

exec_path='/Users/me/path/to/exec'
for name in glob.glob("*.in"):
    print name
    output = name + '.out'
    args = [exec_path, '-o', output, name]
    subprocess.Popen(args).wait()  # <- I've added .wait()