我正在尝试编写一个 python 程序来测试一个使用 Scanner 从标准输入获取输入的 java 程序。
所有其他帖子都指向使用与 popen 通信,但对我来说它绝对不起作用。当我运行我的python程序时,它只是调用popen,然后在java程序等待输入时停止。我在popen后写了一个打印语句来检查。它从不打印。
它非常简单。我只想给这个等待输入的程序一些输入。
这是代码:
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