【发布时间】:2015-04-09 19:38:28
【问题描述】:
我正在尝试将 stderr 重定向到 stdout 并读取命令的输出。看起来代码可以工作,但是当它到达输出的末尾时,它会抛出一个异常
代码:
with Popen(["bash", "-c", "for ((i=0;i<10;i++)); do echo $i; sleep .5; done"],
stderr=subprocess.STDOUT) as proc:
out, err = proc.communicate()
for line in out:
if line:
print(line)
输出:
0
1
2
3
4
5
6
7
8
9
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-28-3c150d6a4092> in <module>()
2 stderr=subprocess.STDOUT) as proc:
3 out, err = proc.communicate()
----> 4 for line in out:
5 if line:
6 print(line)
TypeError: 'NoneType' object is not iterable
【问题讨论】:
-
stderr=subprocess.PIPE
标签: python python-3.x subprocess