一連の引数を取り、一連の出力をコマンドラインに表示する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を使用して実行可能ファイルを実行および制御するために現在推奨されている方法は、サブプロセスモジュールです。さまざまな引数を使用したり、stdoutをキャプチャしたり、処理したり、任意のファイルにリダイレクトしたりできます。こちらのドキュメントをご覧くださいhttps://docs.python.org/3.2/library/subprocess.html#module-subprocess
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加