subprocess モジュールを使用して Python から C プログラムを実行し、その出力を変数にキャプチャしようとしています。コードは次のようになります。
process = Popen(["myprog", str(length), filename], stdout=PIPE, stderr=PIPE)
#wait for the process
result = process.communicate()
end=time()
print result
上記のコードは動作します -の stdout 出力と stderr 出力 (文字列として) のresult
2 タプルとして表示されます。myprog
...しかし、私がに変更print result
するとprint(result)
...
Traceback (most recent call last):
File "tests.py", line 26, in <module>
print(result)
ValueError: I/O operation on closed file
私はここで完全に困惑しています。これをどこから説明しようとしているのかさえわかりません! もちろん、私のプログラムはとにかく動作しますが、なぜそうなったのか知りたいですし、興味深い質問になることを願っています.