【发布时间】:2012-07-14 12:23:09
【问题描述】:
我知道在这里发布了类似的问题,但我的代码无法正常工作。 我想将一个 python 程序输出通过管道传输到其他程序的输入。等待输入的是 raw_input('>')
我要运行的代码是:
import subprocess
gen = subprocess.Popen(['python', 'first.py'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
start = subprocess.Popen(['python','second.py'], stdin=gen.stdout, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
start.communicate()
first.py:
try:
while(1):
print gen()
time.sleep(1)
except KeyboardInterrupt:
sys.exit(1)
输出不会产生任何东西
有什么建议吗?
【问题讨论】:
-
这解释了bugs.python.org/issue1191964 的行为我正在考虑将我的 first.py 程序更改为只返回一个值,而 second.py 每次都调用它。可以用 suboricess 来完成吗?
-
我做了一个 hack,它提供了正确的输入,但不确定这是否是解决问题的好方法pastebin.com/PwUtNpxa 和 t3.py:pastebin.com/K3JdYa13
-
我做了一个 hack,它提供了正确的输入,但不确定这是否是解决问题的好方法pastebin.com/PwUtNpxa 和 t3.py:pastebin.com/K3JdYa13 唯一的问题是它正在输出一个补充>>
标签: python subprocess pipe