Heim  >  Artikel  >  Backend-Entwicklung  >  So rufen Sie Systembefehle in Python auf

So rufen Sie Systembefehle in Python auf

PHPz
PHPznach vorne
2023-05-22 23:19:102030Durchsuche

1. os.system-Methode

Diese Methode ruft direkt die system()-Funktion von Standard C auf. Sie führt den Systembefehl nur in einem Unterterminal aus und kann die Rückgabeinformationen nach der Befehlsausführung nicht abrufen.

Der Rückgabewert von os.system(cmd). Wenn die Ausführung erfolgreich ist, wird 0 zurückgegeben, was darauf hinweist, dass der Befehl erfolgreich ausgeführt wurde. Andernfalls handelt es sich um einen Ausführungsfehler.

Der Rückgabewert der Verwendung von os.system ist der Exit-Statuscode des Skripts. Diese Methode gibt nach dem Aufruf des Shell-Skripts eine 16-Bit-Binärzahl zurück. Die niedrige Ziffer ist die Signalnummer zum Beenden des aufgerufenen Skripts Ziffer ist der Exit-Statuscode des Skripts.

os.system() gibt einen Wert von 0 zurück und der Linux-Befehl gibt einen Wert von 0 zurück. Der Rückgabewert von

os.system() ist 256, die sechzehnstellige Binärzahl wird angezeigt als: 00000001, 00000000, die oberen acht Bits werden in Dezimalzahl 1 konvertiert, was dem Rückgabewert des Linux-Befehls 1 entspricht. Der Rückgabewert von

os.system() ist 512, die sechzehnstellige Binärzahl wird angezeigt als: 00000010, 00000000, die oberen acht Bits werden in Dezimalzahl 2 konvertiert, was dem Rückgabewert 2 des Linux-Befehls entspricht.

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

2. os.popen-Methode

Die os.popen()-Methode führt nicht nur den Befehl aus, sondern gibt nach der Ausführung auch das Informationsobjekt zurück (wird häufig verwendet, um die Rückgabeinformationen nach der Ausführung des Befehls zu erhalten). eine Pipeline-Datei. Was von os.popen() zurückgegeben wird, ist das Objekt der Dateilesung. Sie können die Ausgabe der Ausführung sehen, indem Sie sie mit read() lesen.

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

3. Befehlsmodul

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. Unterprozessmodul

Subprocess ist ein leistungsstarkes Unterprozessverwaltungsmodul, das os.system, os.spawn* und andere Methoden ersetzt.
Wenn die Parameter oder Rückgaben des Ausführungsbefehls chinesische Zeichen enthalten, wird die Verwendung eines Unterprozesses empfohlen.

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()         # 关闭

Das obige ist der detaillierte Inhalt vonSo rufen Sie Systembefehle in Python auf. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen