29 votes

Obtenir une valeur de retour en utilisant subprocess

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 retourne toujours 0 ( http://docs.python.org/library/subprocess.html#subprocess.call ). Comment puis-je exécuter ce script et capturer la valeur de retour pour la stocker dans une variable ?

43voto

10voto

Makoto Points 23751

Si votre script renvoie la valeur, alors vous voudriez 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".

4voto

jcollado Points 18325

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

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X