1

私が作成したのではなく、外部プログラムETを起動し、その出力を使用していくつかの計算を実行するPythonプログラムを作成したいと思います。

モジュールサブプロセスとそのcall()メソッドを使用できることを知っています。ただし、私の問題は、ETの出力が膨大であるということです(プログラムをシェルで起動し、その出力をファイルにリダイレクトすると、25GBのサイズのファイルが得られます)。

したがって、ETの出力が「生成」されるときにアクションを実行し、巨大なファイルを保存しないようにしたいと思います。

これどうやってするの?複数の方法がある場合、私にとって最良の選択を選択するために考慮すべき問題は何ですか?

4

1 に答える 1

1

サブプロセスはあなたのニーズを処理する必要があります。 http://docs.python.org/2/library/subprocess.html#module-subprocess

p = subprocess.Popen("millions.exe", stdout=subprocess.PIPE)
i = 0
for line in p.stdout:
     i+=1

ミリオンズは、0から9999999までの数値を出力するために作成したクイックテストプログラムです。少し時間がかかり、大量の出力を生成します。

考えるべきもう1つのオプションは、コマンドライン配管を使用することです。プログラムからの出力をPythonスクリプトにパイプできるようにするために、sys.stdinを使用できます。

Pythonスクリプトをbashで「パイプ可能」にする方法は?

これを機能させる方法の例です。

于 2013-03-27T01:25:12.987 に答える