Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 隐藏子进程的shell输出。检查_output()_Python_Shell_Subprocess_Sh - Fatal编程技术网

Python 隐藏子进程的shell输出。检查_output()

Python 隐藏子进程的shell输出。检查_output(),python,shell,subprocess,sh,Python,Shell,Subprocess,Sh,我正在使用检索有关我的无线连接的信息 In [4]: subprocess.check_output('iwconfig') eth0 no wireless extensions. lo no wireless extensions. Out[4]: 'wlan0 ...' 我得到了我想要的字符串,但我想从有关eth0和lo的信息中清除shell(请注意,这些行不在检查输出返回字符串中,它们在ipython的in[4]和Out[4]之间打印到shell) 我目前的

我正在使用检索有关我的无线连接的信息

In [4]: subprocess.check_output('iwconfig')
eth0      no wireless extensions.

lo        no wireless extensions.

Out[4]: 'wlan0 ...'
我得到了我想要的字符串,但我想从有关
eth0
lo
的信息中清除shell(请注意,这些行不在
检查输出
返回字符串中,它们在ipython的
in[4]
Out[4]
之间打印到shell)

我目前的猜测是,这两行被视为警告,不会被
check\u输出捕获。希望它们能输出到stderr,我尝试了一些变体

iwconfig > /dev/null 2>&1  # empties my wanted string
iwconfig 2 > /dev/null     # throws an error
但到目前为止还没有成功


如何防止
check_output
将任何内容输出到shell?

如果希望
stderr
作为您的
stdout

subprocess.check_output('iwconfig', stderr=subprocess.STDOUT)
如果您只想删除您的
标准

import os
subprocess.check_output('iwconfig', stderr=open(os.devnull, 'w'))