1

Popen オブジェクトを作成し、出力が送信する引数である cmd を使用することで、それを使用して別のプログラムを実行することに問題はありません...

k = subprocess.Popen(output, stdout=PIPE, stdin=PIPE, stderr=PIPE)

しかし、同じ Popen オブジェクトを使用して、同じコマンド プロンプトから別のコマンドを実行したいと考えています。私は communicate() を使用しましたが、標準出力でも機能しませんでした。私は現在、stdout.readline() と組み合わせて stdin.write() を使用しています。

f = open("sample.txt")    
reed = f.read()
f.close()
k.stdin.write(reed)
p="i"
while p.find("0.0)") == -1:
    p = p+k.stdout.readline()
print p

私は何をすべきか?

編集

p = k.communicate(input=reed)[0]

それが私が必要としていた唯一のものでした。通信で「入力」を使用する必要があることを知りませんでした。常に通信(リード)を使用していました。ばかげた古い while ループも必要ありません。

4

1 に答える 1

0

代わりに subprocess.call を使用してみましたか?

http://docs.python.org/2/library/subprocess.html

于 2013-07-11T18:21:07.417 に答える