307 votes

Codes de sortie en Python

J'ai reçu un message disant script xyz.py returned exit code 0. Qu'est-ce que cela signifie?

Que signifient les codes de sortie en Python veux dire? Combien sont-ils? Qui sont-ils importants?

309voto

Dave Costa Points 25282

Ce que vous cherchez dans le script est à appels pour sys.exit(). L'argument de cette méthode est renvoyé à l'environnement comme le code de sortie.

Il est assez probable que le script n'est jamais l'appel de la méthode exit, et que 0 est la valeur par défaut code de sortie.

131voto

Eigir Points 471

Citation de http://www.wingware.com/psupport/python-manual/2.6/library/sys.html (sur sys.exit())

"L'argument optionnel arg peut être un entier donnant le statut de sortie (la valeur par défaut de zéro), ou un autre type de l'objet. Si c'est un entier, zéro est considéré comme "la fin réussie" et de toute valeur différente de zéro est considéré comme "anormal" par les obus et la comme. La plupart des systèmes d'exiger être dans la plage de 0 à 127, et de produire des pas défini autrement. Certains les systèmes de disposer d'une convention l'attribution des significations spécifiques à spécifiques des codes de sortie, mais elles sont généralement sous-développés; Unix les programmes utilisent généralement 2 pour la commande ligne les erreurs de syntaxe et 1 pour tous les autres genre d'erreurs."

Un exemple où les codes de sortie sont utilisés dans des scripts shell. En bash, vous pouvez vérifier la variable spéciale $? pour la dernière sortie de statut:

me@mini:~$ echo 
mike@mini:~$ echo $?
0
me@mini:~$ eccho
-bash: eccho: command not found
me@mini:~$ echo $?
127

Personnellement, j'essaie d'utiliser les codes de sortie, je la trouve dans /usr/include/asm-generic/errno.h (sur un système linux), mais je ne sais pas si c'est la bonne chose à faire.

22voto

Oli Points 5620

Il y a un errno module qui définit la norme des codes de sortie:

Par exemple, le refus d'une Autorisation est le code d'erreur 13:

import errno, sys

if can_access_resource():
    do_something()
else:
    sys.exit(errno.EACCES)

17voto

Sam Corder Points 3196

Codes de sortie de 0 signifie généralement, "rien de mal ici." Toutefois, si le programmeur du script n'a pas suivi la convention que vous pourriez avoir besoin de consulter la source pour voir ce que cela signifie. Généralement, une valeur non nulle est retournée comme un code d'erreur.

6voto

S.Lott Points 207588

Commandes du système d'exploitation ont des codes de sortie. Recherchez linux codes de sortie pour voir un peu de matériel sur le présent. Le shell utilise les codes de sortie de décider si le programme a travaillé, a eu des problèmes, ou a échoué. Il y a quelques efforts pour créer des standards (ou au moins les plus couramment utilisées) les codes de sortie. Voir cette Avancée de Shell Script d' affichage.

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