Maison  >  Article  >  Tutoriel système  >  Quatre façons d'exécuter des commandes système Python

Quatre façons d'exécuter des commandes système Python

王林
王林original
2024-07-16 02:46:32533parcourir

Il existe plusieurs façons courantes d'exécuter des commandes système en Python

Remarque : L'exemple de code suivant s'exécute sous Python3.5.

Quatre façons dexécuter des commandes système Python

1. méthode os.system

os.system(cmd)

Exécutez la commande système dans le sous-terminal pour obtenir les informations de retour après l'exécution de la commande et l'état renvoyé par l'exécution

>>> import os
>>> os.system('date')
2018年 4月 8日 星期日 19时29分13秒 CST
0  #运行状态号,0表示正确

Après l'exécution, deux lignes de résultats sont renvoyées. La première ligne est le résultat et la deuxième ligne est les informations sur l'état d'exécution

.
2. méthode os.popen

os.popen(cmd)

Non seulement exécute la commande, mais renvoie également l'objet d'information après l'exécution (souvent utilisé pour obtenir les informations de retour après l'exécution de la commande. Le résultat est renvoyé via un fichier pipeline

).
>>> import os
>>> nowtime = os.popen('date')
>>> print(nowtime.read())
2018年 4月 8日 星期日 19时30分35秒 CST
3. module de commandes

Description de la méthode

getoutput Récupère les informations de retour après l'exécution de la commande

getstatus obtient la valeur d'état de la commande exécutée (si la commande est exécutée avec succès, elle renvoie une valeur de 0, sinon elle renvoie non-0)

getstatusoutput Obtient la valeur d'état et renvoie les informations de la commande exécutée

>>> import commonds
>>> status, output = commands.getstatusoutput('date')
>>> print(status)    # 0
>>> print(output)    # 2018年 4月 8日 星期日 19时31分45秒 CST

Remarque 1 : La valeur de retour (statut) renvoyée en utilisant cette méthode sous un système de type Unix n'est pas la même que la valeur de retour après l'exécution du script ou de la commande, car os.wait() est appelé le spécifique. la raison doit être discutée. En savoir plus sur la mise en œuvre 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 des caractères chinois, il est recommandé d'utiliser un sous-processus.

4. module de sous-processus

Utilisez le contrôle et la surveillance des threads et affectez le résultat renvoyé à une variable pour faciliter le traitement du programme. Il existe de nombreux paramètres pouvant être configurés, de nombreuses options de personnalisation et une grande flexibilité. Lorsque j'utilisais os.system auparavant, j'ai rencontré le problème des descripteurs de fichiers hérités par les processus enfants. Je l'ai ensuite résolu en utilisant le paramètre close_fds = False. Document officiel : http://python.usyiyi.cn/python_278/library/subprocess.html

>>> import subprocess
>>> nowtime = subprocess.Popen('date', shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
>>> print(nowtime.stdout.read())
2018年 4月 8日 星期日 19时32分41秒 CST

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