从子进程读取流输入。我用Python的subprocess.communicate()从运行大约一分钟的进程中读取stdout。如何打印出该过程的每一行stdout这样,我就可以看到生成的输出,但在继续之前,还会阻止进程终止吗?subprocess.communicate()似乎同时给出了所有的输出。
4 回答
![?](http://img1.sycdn.imooc.com/54584dd900014f6c02200220-100-100.jpg)
红颜莎娜
TA贡献1842条经验 获得超12个赞
#!/usr/bin/env python2from subprocess import Popen, PIPE p = Popen(["cmd", "arg1"], stdout=PIPE, bufsize=1)with p.stdout: for line in iter(p.stdout.readline, b''): print line,p.wait() # wait for the subprocess to exit
iter()
pexpect
, pty
unbuffer
, stdbuf
, script
#!/usr/bin/env python3from subprocess import Popen, PIPEwith Popen(["cmd", "arg1"], stdout=PIPE, bufsize=1, universal_newlines=True) as p: for line in p.stdout: print(line, end='')
locale.getpreferredencoding(False)
![?](http://img1.sycdn.imooc.com/545869510001a20b02200220-100-100.jpg)
三国纷争
TA贡献1804条经验 获得超7个赞
process.communicate()
subprocess.Popen()
stdout
PIPE
process.stdout
process.poll()
.
添加回答
举报
0/150
提交
取消