【发布时间】:2015-03-15 10:13:17
【问题描述】:
我有一个 C/C++ 程序,它接受一组参数并将一组输出显示到命令行(用于我的研究)。
我想编写一个 Python 脚本来为不同的输入多次运行该程序并将输出写入文件。我打算用详尽的输入来运行程序。
但是,我没有任何使用 Python 编写脚本或编程的经验。所以,我想知道是否可以从哪里开始。
例如,我想写一个脚本来做:
./program -flag1 [val1] -flag2 [val2] -arg1 -arg2 -arg3 ...
Append the output to Output.txt
./program -flag1 [val1] -flag2 [val2] -arg1 -arg2 -arg4 ...
Append the output to Output.txt
./program -flag1 [val1] -flag2 [val2] -arg1 -arg2 -arg5 ...
Append the output to Output.txt
...
...
./program -flag1 [val1] -flag2 [val2] -arg1000 -arg1000 -arg1000 ...
Append the output to Output.txt
编辑:我正在通过命令行 bash 在 Linux 上运行程序。
EDIT2 SLN:只是为了将来参考可能是初学者的其他人,做类似的事情,解决方案如下所示。我剥离了所有只影响我的案例的部分。
import subprocess
from subprocess import Popen, PIPE
for commands in listArgs:
# Build command through for loop in listArgs.
# Details are omitted.
cmd = ["./program", "-flag1", "val1", "-flag2", "val2", "-arg1", "-arg2", ... ]
# Open/Create the output file
outFile = open('/path/to/file/Output.txt', 'a+')
result = subprocess.Popen(cmd, stdout=subprocess.PIPE)
out = result.stdout.read()
outFile.write(out)
outFile.close()
【问题讨论】:
-
Python 的子进程可能会做得很好。 . .话虽如此,像
bash这样的工具可能更适合这项任务。 -
什么平台?视窗?苹果? Linux?
-
“我有一个 C/C++ 程序...”不,你没有。这是其中之一,除非您有一个 C++ 程序,其中一个或多个编译单元使用 C 语言,并且您已采取必要的措施使它们正常工作,这通常很重要。