Maison >développement back-end >Tutoriel Python >Explication détaillée de la façon d'exécuter des commandes système en Python

Explication détaillée de la façon d'exécuter des commandes système en Python

巴扎黑
巴扎黑original
2017-09-16 10:07:091623parcourir

Récemment, lorsque je travaillais sur ce framework de test, j'ai découvert que je n'étais pas très familier avec l'exécution de commandes système en Python, j'ai donc pensé à le résumer. L'article suivant vous présente principalement la méthode d'exécution des commandes système en Python. Les amis qui en ont besoin peuvent le faire. Pour référence, jetons un œil ci-dessous.

Préface

Python est souvent appelé le « langage de colle » car il peut facilement faire fonctionner d'autres programmes et être facilement empaqueté pour être utilisé dans d'autres langages. .Bibliothèque écrite. Dans l'environnement Python/wxPython, méthode d'exécution de commandes externes ou de démarrage d'un autre programme dans un programme Python.

Cet article présentera en détail les informations pertinentes sur la façon d'exécuter les commandes système en Python. Je ne dirai pas grand-chose ci-dessous, jetons un œil à l'introduction détaillée.

(1) os.system()

Cette méthode appelle directement la fonction standard C system(), en un seul Le sous-terminal exécute les commandes système mais ne peut pas obtenir les informations renvoyées par l'exécution.


>>> import os 
>>> output = os.system('cat /proc/cpuinfo') 
processor : 0 
vendor_id : AuthenticAMD 
cpu family : 21 
... ... 
>>> output # doesn't capture output 
0

(2) os.popen()

Cette méthode exécute la commande et renvoie l'objet d'information exécuté. Le résultat est renvoyé via un fichier pipeline.


>>> output = os.popen('cat /proc/cpuinfo') 
>>> output 
<open file &#39;cat /proc/cpuinfo&#39;, mode &#39;r&#39; at 0x7ff52d831540> 
>>> print output.read() 
processor : 0 
vendor_id : AuthenticAMD 
cpu family : 21 
... ... 
>>><span style="font-size:14px;">

(3) module de commandes


>>> import commands 
>>> (status, output) = commands.getstatusoutput(&#39;cat /proc/cpuinfo&#39;) 
>>> print output 
processor : 0 
vendor_id : AuthenticAMD 
cpu family : 21 
... ... 
>>> print status 
0

Remarque 1 : La valeur de retour (statut) renvoyée par cette méthode sous un système de type Unix est différente de la valeur de retour après le script ou La commande est exécutée. Attendez, c'est parce que os.wait() est appelé. Pour cette raison spécifique, vous devez comprendre l'implémentation du système wait(). Si vous avez besoin de la valeur de retour correcte (statut), il vous suffit de décaler la valeur de retour de 8 bits vers la droite.

Remarque 2 : Lorsque les paramètres ou les retours de la commande d'exécution contiennent du texte chinois, il est recommandé d'utiliser un sous-processus.

(4) module de sous-processus

Ce module est un puissant module de gestion de sous-processus qui remplace , os.system et d'autres méthodes. os.spawn*


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