【问题标题】:Calling a non python program from python?从 python 调用非 python 程序?
【发布时间】:2011-02-24 13:48:21
【问题描述】:

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

【问题讨论】:

  • 不能在命令调用中指定输出文件吗?
  • 输入文件名是如何传递给程序的?我不太明白你的例子,“-input”应该是文件名,还是应该在“-input”之后(并省略)?
  • 啊,对不起-文件名出现在输入和输出之后,即-input [fname.in] -output[fname.out]。

标签: python system-calls


【解决方案1】:

您可以为此目的使用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 - 你为我节省了很多时间!
猜你喜欢
  • 1970-01-01
  • 2013-05-30
  • 1970-01-01
  • 2018-07-03
  • 1970-01-01
  • 2015-06-03
  • 1970-01-01
  • 1970-01-01
  • 2023-04-10
相关资源
最近更新 更多