你对Python子流程模块下的PIPE Lines有什么了解。?
以下是一个例子:
代码1:
from subprocess import *
output = Popen("ls")
代码2
from subprocess import *
output = Popen("ls", stdin=PIPE, stdout=PIPE)
2个代码有什么不同?
提前致谢
答案 0 :(得分:0)
在第一个代码中,output
将是包含当前目录中ls
命令结果的对象。
在你的第二段代码中,你正在使用stdout
ls
命令,stdin
只提到PIPE
这是错误的,因为你没有提及你正在采取的任何对象stdin
。
您的第二个代码在这种形式下会更好:
from subprocess import *
output = Popen(["ls"], stdout=PIPE).communicate()[0]
在这里,我使用了communicate
的{{1}}方法,将subprocess
(和stdout
)通过管道发送到stderr
。它返回stdin
的元组,但我们只对(stdout, stderr)
(索引0)感兴趣,因此我使用了stdout
。