在 subprocess.check_output() 内抑制 stderr

Suppress stderr within subprocess.check_output()

我正在寻找一种方法来忽略 stderr 流(类似于 2> /dev/null):

output = subprocess.check_output("netstat -nptl".split())

我应该在上面的命令中添加什么来实现这个?

只需告诉 subprocess 为您重定向即可:

import subprocess
    
output = subprocess.check_output(
    "netstat -nptl".split(), stderr=subprocess.DEVNULL
)

对于 python 2,它有点冗长。

import os
import subprocess

with open(os.devnull, 'w') as devnull:
    output = subprocess.check_output(
        "netstat -nptl".split(), stderr=devnull
    )