从Python中调用非Python程序?

4

我目前在努力从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)

我有一个必要文件的数组。我的问题是,如何遍历数组,并为每个条目将其作为参数传递给上述命令(program_name),并为每个文件指定唯一的输出ID?


你不能在命令调用中指定输出文件吗? - SilentGhost
输入文件名是如何传递给程序的?我不太理解你的例子,"-input" 是文件名还是应该跟在 "-input" 后面(并省略)? - Torsten Marek
啊,抱歉 - 文件名出现在输入和输出之后,即 -input [fname.in] -output[fname.out]。 - Darren J. Fitzpatrick
1个回答

11
你可以使用 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])

谢谢Luper - 你帮我省了好几个小时的时间! - Darren J. Fitzpatrick

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接