我有这个python代码
input()
print('spam')
保存为ex1.py
>>>from subprocess import Popen ,PIPE
>>>a=Popen(['python.exe','ex1.py'],stdout=PIPE,stdin=PIPE)
>>> a.communicate()
(b'', None)
>>>
为什么它不打印spam
答案 0 :(得分:3)
输入需要整行,但输入为空。因此,只有一个例外写入stderr
而没有写入stdout
。至少提供换行符作为输入:
>>> a = Popen(['python3', 'ex1.py'], stdout=PIPE, stdin=PIPE)
>>> a.communicate(b'\n')
(b'spam\n', None)
>>>
答案 1 :(得分:0)
您正在寻找的是subprocess.check_output
答案 2 :(得分:0)
您缺少tar
管道:
stderr