我有两个脚本,只需要输入然后打印输入。另一个启动脚本。它只有一半的工作,我希望有人可以解决这个问题。
test.py
import subprocess
process = subprocess.Popen('python test2.py', shell=False,
stdin=subprocess.PIPE, stdout=subprocess.PIPE,
stderr=None)
process.stdin.write("test\r\n".encode('utf-8'))
process.stdin.flush()
result = process.stdout.readline()[:-2].decode('utf-8')
print(result)
while result != "":
result = process.stdout.readline()[:-2].decode('utf-8')
print(result)
test2.py
s=input("input here:")
print(s)
预期产出:
input here:test
test
实际输出:
input here:test
答案 0 :(得分:0)
请注意,输入未回显。如果您正坐在终端上并且要运行' python test2.py',终端会在您输入时回显您的输入。这将显示" test"两次。你的test.py程序发送单词" test"通过管道;它不会打印到stdout。 test2.py程序打印输入一次。因此输出"输入:test"是对的。