2015-07-28 14 views
11

Sto cercando di trovare un modo per ignorare il flusso stderr (qualcosa di simile a 2> /dev/null):reprimere stderr entro subprocess.check_output()

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

Cosa devo aggiungere al comando precedente per raggiungere questo obiettivo?

+0

related: [Come nascondere l'output del sottoprocesso in Python 2.7] (http://stackoverflow.com/q/11269575) – jfs

risposta

20

Basta dire subprocess per reindirizzare per voi:

import os 
import subprocess 

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

noti che Python 3 aggiunge un subprocess.DEVNULL object, risparmiando dover aprire da soli.