8.18 commands -- Utilità per eseguire comandi

Disponibilità: Unix.

Il modulo commands contiene funzioni che incapsulano os.popen() la quale accetta un comando di sistema sotto forma di stringa, restituisce ogni output generato dal comando e, facoltativamente, lo stato d'uscita.

Il modulo commands definisce le seguenti funzioni:

getstatusoutput( cmd)
Esegue in una shell la stringa cmd tramite os.popen() e restituisce una tupla di due elementi (status, output). cmd viene di fatto eseguito come { cmd ; } 2>&1, in modo che l'output restituito contenga l'output o i messaggi d'errore. Dall'output viene rimosso un carattere di fine riga. Lo stato d'uscita del il comando può venire interpretato in accordo con le regole della funzione C wait().

getoutput( cmd)
Identica a getstatusoutput(), eccetto per il fatto che lo stato d'uscita viene ignorato ed il valore restituito è una stringa contenente solo l'output del comando.

getstatus( file)
Restituisce l'output di "ls -ld file" sotto forma di stringa. Questa funzione utilizza la funzione getoutput(), ed effettua in modo appropriato l'aggiunta del carattere di protezione davanti ai caratteri slash e dollaro nell'argomento.

Esempio:

>>> 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'

Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.