Python: запуск команд bash последовательно - PullRequest
0 голосов
/ 20 сентября 2018

Я запускаю исполняемый файл для группы *.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 голосов
/ 20 сентября 2018

Звучит так, как будто вам нужно дождаться завершения вашего процесса, прежде чем переходить к циклу.

Ваш пример можно переписать так:

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()
...