如何在subprocess.Popen

时间:2016-05-31 15:13:53

标签: python subprocess popen

我如何实现

之类的东西
$ echo "hello" | my_app

使用Python的子进程?

subprocess.Popen()需要STDIN的管道或文件句柄。但我想通过变量为被调用程序提供STDIN。像

这样的东西
myinput = "hello"
subprocess.Popen("an_external_programm", stdin=myinput)
….

2 个答案:

答案 0 :(得分:1)

我可以使用Popen.communicate()

来解决我的问题

所以某种伪代码:

proc = subprocess.Popen(…)
proc.communicate(input="my_input_via_stdin")

答案 1 :(得分:0)

在名为myscript.py的python脚本中

import sys

for line in sys.stdin:
     print(line)

in unix

回声'你好'| myscript.py