web-dev-qa-db-fra.com

Obtenir une valeur de retour en utilisant un sous-processus

Je veux pouvoir définir une variable par la valeur de retour d'un script. Voici ce que j'ai actuellement:

sum_total_earnings_usd = subprocess.call([SCRIPT, "-d", date])

J'ai vérifié la valeur de retour de SCRIPT, cependant, lorsque j'essaie de définir cette variable, elle renvoie toujours 0 ( http://docs.python.org/library/subprocess.html#subprocess.call ). Comment exécuter ce script et capturer la valeur de retour à stocker en tant que variable?

19
David542
25
user849425

Si votre script renvoie la valeur, alors vous voudrez utiliser subprocess.check_output() :

subprocess.check_output([SCRIPT, "-d", date], Shell=True).

subprocess.check_call() obtient la valeur de retour finale du script, et 0 signifie généralement "le script s'est terminé avec succès".

6
Makoto

subprocess.call renvoie déjà la valeur de retour du processus. Si vous obtenez toujours 0, vous devrez alors revoir SCRIPT pour vous assurer qu'il renvoie la valeur attendue.

Pour vérifier, vous pouvez également exécuter le SCRIPT dans un shell et utiliser $? pour obtenir le code retour.

3
jcollado