我正在使用
检索有关我的无线连接的信息In [4]: subprocess.check_output('iwconfig')
eth0 no wireless extensions.
lo no wireless extensions.
Out[4]: 'wlan0 ...'
我得到了我想要的字符串,但是我想从有关eth0
和lo
的信息中清除shell(注意这些行不在check_ouput
返回字符串中,它们在ipython的In [4]
和Out [4]
之间打印到shell。
我目前的猜测是,这两行被视为警告,并未被check_output
捕获。希望他们输出到stderr
我在
iwconfig > /dev/null 2>&1 # empties my wanted string
iwconfig 2 > /dev/null # throws an error
但到目前为止没有成功。
如何阻止check_output
向shell输出任何内容?
答案 0 :(得分:3)
如果您希望将stderr
作为stdout
:
subprocess.check_output('iwconfig', stderr=subprocess.STDOUT)
如果您想要的只是消灭stderr
:
import os
subprocess.check_output('iwconfig', stderr=open(os.devnull, 'w'))