2015-07-28 51 views
11

Staram się znaleźć sposób, aby ignorować strumienia stderr (coś podobnego do 2> /dev/null):zwalczaniu stderr ciągu subprocess.check_output()

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

Co należy dodać do powyższego polecenia, aby to osiągnąć?

+0

powiązane: [Jak ukryć wyjście podprocesu w Pythonie 2.7] (http://stackoverflow.com/q/11269575) – jfs

Odpowiedz

20

Wystarczy powiedzieć subprocess przekierować go dla Ciebie:

import os 
import subprocess 

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

Zauważ, że Python 3 dodaje subprocess.DEVNULL object, oszczędzając konieczności otwierania tego samemu.