subprocess.Popenにあるものをすべて読みましたが、何かが足りないと思います。
Pythonスクリプトで作成されたリストからデータストリームを読み取り、そのプログラムの結果をファイルに書き込むUNIXプログラムを実行できる必要があります。bashプロンプトから、私はこれを常に問題なく実行していますが、この段階に入る前に、いくつかのバイナリファイルと大量のデータを前処理するPythonスクリプト内からこれを実行しようとしています。
すべての前処理を含まない簡単な例を見てみましょう。
import sys
from pylab import *
from subprocess import *
from shlex import split
# some arbitrary x,y points
points = [(11,31),(13,33),(15,37),(16,35),(17,38),(18,39.55)]
commandline = 'my_unix_prog option1 option2 .... > outfile'
command = split(commandline)
process = Popen(command, stdin=PIPE, stdout=PIPE, stderr=PIPE)
print process.communicate(str(points))
これがbashで実行される方法は次のとおりです。
echo "11 31
13 33
15 37
16 35
17 38
18 39.55" | my_unix_prog option1 option2 .... > outfile
データがUNIXプログラムに供給される方法も重要です。空白で区切られた2列でフォーマットする必要があります。
どんな助けでもありがたいです...