2010-05-27 4 views
4

저는 현재 파이썬 스크립트에서 비 파이썬 프로그램을 호출하기 위해 고심하고 있습니다.파이썬에서 비 파이썬 프로그램 호출하기?

이 C++ 프로그램을 통과 할 때 ~ 1000 개의 출력을 생성하는 ~ 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) 

, 나는 neccesary 파일의 배열을 가지고있다. 내 문제 - 어떻게 배열 및 각 항목에 대해 반복 위의 명령 (program_name) 인수로 전달하고 각 파일에 대해 고유 한 출력 ID를 지정합니까?

+0

당신이 아닌 명령 호출에서 출력 파일을 지정할 수 있습니다? – SilentGhost

+0

입력 파일 이름은 프로그램에 어떻게 전달됩니까? 나는 정말로 당신의 예제를 이해하지 못한다. "-input"이 파일 이름이라고 생각하거나, "-input"(그리고 생략 된 것)을 따라야 만 하는가? –

+0

아, 죄송합니다 - 파일 이름은 입력 및 출력 후에 발생합니다 (즉, -input [fname.in] - 출력 [fname.out]). –

답변

10

당신은 그 목적을 위해 subprocess를 사용할 수 있습니다

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]) 
+0

감사 Luper - 당신은 저를 구원했습니다! –

관련 문제