Maison  >  Article  >  développement back-end  >  Comment appeler des commandes système en Python

Comment appeler des commandes système en Python

PHPz
PHPzavant
2023-05-22 23:19:102008parcourir

1. Méthode os.system

Cette méthode appelle directement la fonction system() du standard C. Elle exécute uniquement la commande système dans un sous-terminal et ne peut pas obtenir les informations de retour après l'exécution de la commande.

La valeur de retour de os.system(cmd). Si l'exécution réussit, 0 sera renvoyé, indiquant que la commande a été exécutée avec succès. Sinon, c'est une erreur d'exécution.

La valeur de retour de l'utilisation de os.system est le code d'état de sortie du script. Cette méthode renvoie un nombre binaire de 16 bits après l'appel du script shell. Le chiffre faible est le numéro de signal pour tuer le script appelé, et le chiffre élevé. digit est le code d'état de sortie du script.

os.system() renvoie une valeur de 0 et la commande Linux renvoie une valeur de 0. La valeur de retour de

os.system() est 256, le nombre binaire à seize chiffres est affiché comme : 00000001, 00000000, les huit bits de poids fort sont convertis en décimal 1, ce qui correspond à la valeur de retour de la commande Linux 1. La valeur de retour de

os.system() est 512, le nombre binaire à seize chiffres est affiché comme : 00000010, 00000000, les huit bits de poids fort sont convertis en décimal 2, ce qui correspond à la valeur de retour de la commande Linux 2.

import os
result = os.system('cat /etc/passwd')
print(result)      # 0

2. Méthode os.popen

La méthode os.popen() exécute non seulement la commande mais renvoie également l'objet d'information après l'exécution (souvent utilisée pour obtenir les informations de retour après l'exécution de la commande. Elle renvoie le résultat via). un fichier pipeline. Ce qui est renvoyé par os.popen() est l'objet de lecture du fichier. Vous pouvez voir le résultat de l'exécution en le lisant avec read().

import os
result = os.popen('cat /etc/passwd')
print(result.read())

3. module de commandes

import commands
status = commands.getstatus('cat /etc/passwd')
print(status)
output = commands.getoutput('cat /etc/passwd')
print(output)
(status, output) = commands.getstatusoutput('cat /etc/passwd')
print(status, output)

4. module de sous-processus

Subprocess est un puissant module de gestion de sous-processus qui remplace os.system, os.spawn* et d'autres méthodes.
Lorsque les paramètres ou retours de la commande d'exécution contiennent des caractères chinois, il est recommandé d'utiliser un sous-processus.

import subprocess
res = subprocess.Popen('cat /etc/passwd', shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) # 使用管道
print res.stdout.read()  # 标准输出
for line in res.stdout.readlines():
    print line
res.stdout.close()         # 关闭

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer