Вызываете не python программу из python? - PullRequest
4 голосов
/ 27 мая 2010

В настоящее время я пытаюсь вызвать программу, отличную от Python, из скрипта Python.

У меня есть ~ 1000 файлов, которые при прохождении через эту программу C ++ будут генерировать ~ 1000 выходных данных. Каждый выходной файл должен иметь отдельное имя.

Команда, которую я хочу выполнить, имеет вид:

program_name -input -output -o1 -o2 -o3

На сегодняшний день я пробовал:

import os

cwd = os.getcwd()

files = os.listdir(cwd)

required_files = []

for i in file:
    if i.endswith('.ttp'):
         required_files.append(i)

Итак, у меня есть массив необходимых файлов. Моя проблема - как мне перебрать массив и для каждой записи передать его вышеуказанной команде (имя_программы) в качестве аргумента и указать уникальный выходной идентификатор для каждого файла?

1 Ответ

10 голосов
/ 27 мая 2010

Для этой цели вы можете использовать подпроцесс :

import os
import subprocess

cwd = os.getcwd()

for i in os.listdir(cwd):
    if i.endswith('.ttp'):
        o = i + "-out"
        p = subprocess.call(["program_name", "-input", i, "-output", o])
...