2009-02-01 16 views
8

Esiste un metodo integrato in Python per eseguire un comando di sistema senza visualizzare l'output? Voglio solo prendere il valore di ritorno.In Python - come eseguire il comando di sistema senza uscita

È importante che sia multipiattaforma, quindi il solo reindirizzamento dell'output su/dev/null non funzionerà su Windows e viceversa. So che posso semplicemente controllare os.platform e costruire da solo il reindirizzamento, ma spero in una soluzione integrata.

risposta

17
import os 
import subprocess 
subprocess.call(["ls", "-l"], stdout=open(os.devnull, "w"), stderr=subprocess.STDOUT) 
2

È possibile reindirizzare l'output in un file temporaneo ed eliminarlo in seguito. Ma c'è anche un metodo chiamato popen che reindirizza l'output direttamente al tuo programma in modo che non vada sullo schermo.

Problemi correlati