【发布时间】:2016-10-13 08:23:08
【问题描述】:
假设有一个名为“ABC”的程序,它从标准输入读取 4 个整数并对其进行处理。
最近,我认为我们可以使用管道将输入提供给 ABC,如下所示:
# send.py
import subprocess
p = subprocess.Popen(['ABC'], stdin = subprocess.PIPE)
print >>p.stdin, '1 2 3 4'
我的问题是:我们可以在调用subprocess.Popen 后再次重定向标准输入吗?例如,
# send.py
import subprocess
p = subprocess.Popen(['ABC'], stdin = subprocess.PIPE)
print >>p.stdin, '1 2 3'
(Redirect p.stdin to terminal's stdin)
,这样我们就可以在终端输入第四个整数到ABC了。
【问题讨论】:
-
您希望
send.py从标准输入读取然后写入ABC的标准输入?是的,你绝对可以做到。在这种情况下,它不被称为“重定向”——每个程序都有自己的标准输入。使用input()或sys.stdin.read()。
标签: python python-2.7 subprocess popen