2010-07-28 6 views
1

j'ai un script python qui invoque la commande suivante:script Python Calling Marque et autres utilitaires

# make 

Après make, il invoque également trois autres programmes. Existe-t-il un moyen standard de dire si la commande make a réussi ou non? À l'heure actuelle, si la commande réussit ou échoue, le programme continue à s'exécuter. Je veux soulever une erreur que la marque n'était pas possible.

Quelqu'un peut-il me donner une direction avec cela?

Répondre

2

La valeur de retour des méthodes poll() et wait() est le code de retour du processus. Vérifiez pour voir si c'est non nul.

+0

Est-ce que poll() et wait() se construisent en python ou make? –

+1

'poll' et' wait' sont des méthodes comprises par les objets 'subprocess.Popen'. Cliquez sur les liens dans la réponse d'Ignacio pour plus d'informations. – unutbu

+0

Merci pour le pourboire! Je n'ai même pas réalisé que c'était un lien! –

0

Regardez le code de sortie de make. Si vous utilisez le module python commands, vous pouvez obtenir le code d'état facilement. 0 signifie succès, non nul signifie un problème.

+0

Merci! Je vais regarder dans –

0
import os 
if os.system("make"): 
    print "True" 
else: 
    print "False" 
+0

Désolé. Je ne pense pas que cela fonctionne. Je viens de le tester en appelant un programme fictif qui n'existe jamais et qui ne va jamais à la fausse déclaration –

+0

Ce script affichera True si renvoyé des erreurs, et false si il s'est terminé proprement. –

0

Utilisez subprocess.check_call(). De cette façon, vous n'avez pas besoin de vérifier le code de retour vous-même - une exception sera levée si le code de retour était différent de zéro.