Python スクリプトから実行可能ファイルを呼び出すにはどうすればいいですか? 質問する

Python スクリプトから実行可能ファイルを呼び出すにはどうすればいいですか? 質問する

このスクリプトを Python スクリプトから実行する必要があります。

それは可能ですか? スクリプトは、いくつかのファイルが書き込まれる出力を生成します。これらのファイルにアクセスするにはどうすればいいですか? サブプロセス呼び出し関数を試しましたが、成功しませんでした。

fx@fx-ubuntu:~/Documents/projects/foo$ bin/bar -c somefile.xml -d text.txt -r aString -f anotherString >output

アプリケーション「bar」はいくつかのライブラリも参照し、出力の他に「bar.xml」ファイルも作成します。これらのファイルにアクセスするにはどうすればよいでしょうか? open() を使用するだけでよいのでしょうか?

ありがとう、

編集:

Python ランタイムからのエラーはこの行だけです。

$ python foo.py
bin/bar: bin/bar: cannot execute binary file

ベストアンサー1

外部プログラムを実行するには、次のようにします。

import subprocess
args = ("bin/bar", "-c", "somefile.xml", "-d", "text.txt", "-r", "aString", "-f", "anotherString")
#Or just:
#args = "bin/bar -c somefile.xml -d text.txt -r aString -f anotherString".split()
popen = subprocess.Popen(args, stdout=subprocess.PIPE)
popen.wait()
output = popen.stdout.read()
print output

はい、bin/barプログラムが他のさまざまなファイルをディスクに書き込んだと仮定すると、通常どおり でそれらを開くことができますopen("path/to/output/file.txt")。必要なければ、サブシェルを使用して出力をディスク上の「output」という名前のファイルにリダイレクトする必要はありません。ここでは、途中でディスクにアクセスせずに出力を Python プログラムに直接読み込む方法を示しています。

おすすめ記事