Maison > Article > développement back-end > Explication détaillée de la façon d'exécuter des commandes système en Python
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 'cat /proc/cpuinfo', mode 'r' 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('cat /proc/cpuinfo') >>> 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!