2009-02-01 9 views
8

Existe-t-il une méthode intégrée en Python pour exécuter une commande système sans afficher la sortie? Je veux seulement saisir la valeur de retour.En Python - comment exécuter une commande système sans sortie

Il est important que ce soit multi-plateforme, donc rediriger simplement la sortie vers/dev/null ne fonctionnera pas sous Windows, et inversement. Je sais que je peux juste vérifier os.platform et construire la redirection moi-même, mais j'espère une solution intégrée.

Répondre

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

Vous pouvez rediriger la sortie dans un fichier temporaire et l'effacer par la suite. Mais il existe aussi une méthode appelée popen qui redirige la sortie directement vers votre programme pour qu'il ne soit pas affiché à l'écran.

Questions connexes