Scanner を使用して stdin から入力を取得する Java プログラムをテストするための Python プログラムを作成しようとしています。
他のすべての投稿は popen との通信を使用することを示していますが、私にとってはまったく機能しません。Python プログラムを実行すると、popen が呼び出され、Java プログラムが入力を待機している間に停止します。popen の後に print ステートメントを書いて確認しました。決して印刷されません。
とてもシンプルです。入力を待つこのプログラムに入力を与えたいだけです。
コードは次のとおりです。
import os.path, subprocess
from subprocess import PIPE
p = subprocess.Popen(['java', 'Main'], stdin=PIPE, stdout=PIPE)
print 'after subprocess' #this never get's printed
output = p.communicate(input='5 5 4 3 2 1'.encode())[0]
print output