如何从os.popen()获取stderr?

时间:2016-02-24 20:08:20

标签: python python-2.7

如果我打电话

os.popen('foo').read()

我想抓拍

sh: foo: not found

我没有subprocess模块,因为这是嵌入式系统上的最小安装。

popen3,4也不起作用:

 File "/usr/lib/python2.7/os.py", line 667, in popen3
import subprocess
ImportError: No module named subprocess

我想我能做到

os.popen(command + " 2>&1").read()

把它传递给stdout,但理想情况下我想分开得到它。

1 个答案:

答案 0 :(得分:0)

由于应该使用子进程代替os.popen,你可以做类似的事情

test.py:

<a class="w3-green w3-button w3-hover-green" href="#div_id?page=<?php echo $l; ?>"><?php echo $l; ?></a>

现在执行:

from subprocess import PIPE, Popen

p = Popen("foo", shell=True, stdout=PIPE, stderr=PIPE)
stdout, stderr = p.communicate()
print "stdout: '%s'" % stdout
print "stderr: '%s'" % stderr

注意stderr中的CR。