8.18 commands --- Utilitaires pour lancer des commandes hors de l'interpréteur

Disponibilité: Unix

Le module commands contient des fonctions pour enrober os.popen() qui prend une commande système (shell) sous la forme d'une chaîne de caractères, retourne (éventuellement) le résultat de la commande et retourne optionnellemet le code d'état de retour.

Le module commands définit les fonctions suivantes:

getstatusoutput(cmd)
Exécute la chaîne cmd dans un shell en utilisant os.popen(), retourne un tuple de taille 2 (status, output). La commande cmd est réellement lancée par { cmd ; } 2>&1et donc la sortie récupérée contient à la fois la sortie standard erreur et la sortie standard. Le retour chariot final est supprimé de cette chaîne retournée. Le code de retour de la commande peut être interprétée avec les même règles que pour les fonctions C.

getoutput(cmd)
Même comportement que getstatusoutput(), mais le code de retour est ignoré et le retour est une chaîne de caratères contenant la sortie de la commande.

getstatus(file)
Renvoie le résultat de la commande "ls -ld file" sous la forme d'une chaîne de caractères. Cette fonction utilise getoutput()et se charge de protéger les caractères spéciaux en arguments (c'est à dire les anti-slash et les dollars).

Exemple:

>>> import commands
>>> commands.getstatusoutput('ls /bin/ls')
(0, '/bin/ls')
>>> commands.getstatusoutput('cat /bin/junk')
(256, 'cat: /bin/junk: No such file or directory')
>>> commands.getstatusoutput('/bin/junk')
(256, 'sh: /bin/junk: not found')
>>> commands.getoutput('ls /bin/ls')
'/bin/ls'
>>> commands.getstatus('/bin/ls')
'-rwxr-xr-x  1 root        13352 Oct 14  1994 /bin/ls'