2010-08-12 14 views

Répondre

7

De l'subprocess documentation:

from subprocess import * 
output = Popen(["mycmd", "myarg"], stdout=PIPE).communicate()[0] 
+0

sortie = subprocess.Popen ("echo bonjour", stdout = subprocess.PIPE) .communicate() [0] donne une erreur « Impossible de trouver spécifié fichier"; quel est le problème? –

+1

Si vous voulez exécuter une commande entière dans une chaîne, vous devez passer 'shell = True'. Sinon, vous devez passer la commande et les args sous la forme d'une liste de chaînes: 'subprocess.Popen ([" echo "," hello "], stdout = subprocess.PIPE) .communicate() [0]' –

2

Jetez un coup d'oeil au module de sous-processus.

http://docs.python.org/library/subprocess.html

Il vous permet de faire beaucoup de la même entrée et la redirection de sortie que vous pouvez faire dans la coquille.

Si vous essayez de rediriger la sortie standard du script en cours d'exécution, il s'agit simplement d'obtenir le bon gestionnaire de fichiers. En haut de ma tête, stdin est 0, stdout est 1, et stderr est 2, mais double vérification. Je peux me tromper sur ce point.