Maison > Tutoriel système > Linux > le corps du texte

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

王林
Libérer: 2024-07-16 02:46:32
original
557 Les gens l'ont consulté

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表示正确
Copier après la connexion

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
Copier après la connexion
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
Copier après la connexion

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
Copier après la connexion

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!

source:linuxprobe.com
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal