Maison  >  Article  >  développement back-end  >  Explication détaillée de trois méthodes d'exécution de commandes shell en python

Explication détaillée de trois méthodes d'exécution de commandes shell en python

高洛峰
高洛峰original
2018-05-12 16:09:482226parcourir

Récemment, il est nécessaire d'exécuter des commandes shell sur la page

La première est os.system

Le code est le suivant :

os.system('cat /proc/cpuinfo')
Mais j'ai trouvé que sur la page Le résultat de l'exécution de la commande imprimé est 0 ou 1, ce qui bien sûr ne répond pas aux exigences.

Essayez la deuxième solution os.popen()

Le code est le suivant :

output = os.popen('cat /proc/cpuinfo')
print output.read()
Ce qui est renvoyé via os.popen() est l'objet de lecture du fichier . Effectuez l'opération read() pour voir le résultat de l'exécution. Mais la valeur de retour de l'exécution du programme ne peut pas être lue)

Essayez la troisième solution commands.getstatusoutput() Vous pouvez obtenir la valeur de retour et la sortie dans une seule méthode, qui est très simple à utiliser.

Le code est le suivant :

(status, output) = commands.getstatusoutput('cat /proc/cpuinfo')
print status, output
Un exemple donné dans le document Python,

Le code est le suivant :

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


Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn