Heim > System-Tutorial > LINUX > Hauptteil

Vier Möglichkeiten, Python-Systembefehle auszuführen

王林
Freigeben: 2024-07-16 02:46:32
Original
478 Leute haben es durchsucht

Es gibt mehrere gängige Möglichkeiten, Systembefehle in Python auszuführen

Hinweis: Der folgende Beispielcode läuft unter Python3.5.

Vier Möglichkeiten, Python-Systembefehle auszuführen

1. OS.System-Methode

os.system(cmd)

Führen Sie den Systembefehl im Unterterminal aus, um die Rückgabeinformationen nach der Befehlsausführung und den von der Ausführung zurückgegebenen Status zu erhalten

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

Nach der Ausführung werden zwei Ergebniszeilen zurückgegeben. Die erste Zeile ist das Ergebnis und die zweite Zeile ist die Ausführungsstatusinformation

2. os.popen-Methode

os.popen(cmd)

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. Das Ergebnis wird über eine Pipeline-Datei zurückgegeben.)

>>> import os
>>> nowtime = os.popen('date')
>>> print(nowtime.read())
2018年 4月 8日 星期日 19时30分35秒 CST
Nach dem Login kopieren
3. Befehlsmodul
Methodenbeschreibung

getoutput Ruft die Rückgabeinformationen nach der Ausführung des Befehls ab

getstatus ruft den Statuswert des ausgeführten Befehls ab (wenn der Befehl erfolgreich ausgeführt wird, gibt er einen Wert von 0 zurück, andernfalls wird ein Wert ungleich 0 zurückgegeben)

getstatusoutput Ruft den Statuswert und die Rückgabeinformationen des ausgeführten Befehls ab

>>> import commonds
>>> status, output = commands.getstatusoutput('date')
>>> print(status)    # 0
>>> print(output)    # 2018年 4月 8日 星期日 19时31分45秒 CST
Nach dem Login kopieren
Hinweis 1: Der Rückgabewert (Status), der bei Verwendung dieser Methode unter einem Unix-ähnlichen System zurückgegeben wird, ist nicht derselbe wie der Rückgabewert nach der Ausführung des Skripts oder Befehls. Dies liegt daran, dass os.wait() aufgerufen wird Der Grund muss besprochen werden. Erfahren Sie mehr über die Implementierung des Systems wait(). Wenn Sie den richtigen Rückgabewert (Status) benötigen, müssen Sie den Rückgabewert nur um 8 Bit nach rechts verschieben.

Hinweis 2: Wenn die Parameter oder Rückgaben des Ausführungsbefehls chinesische Zeichen enthalten, wird die Verwendung eines Unterprozesses empfohlen.

4. Unterprozessmodul
Nutzen Sie die Steuerung und Überwachung von Threads und weisen Sie das zurückgegebene Ergebnis einer Variablen zu, um die Programmverarbeitung zu erleichtern. Es gibt umfangreiche konfigurierbare Parameter, viele Optionen zur Anpassung und hohe Flexibilität. Als ich zuvor os.system verwendet habe, bin ich auf das Problem gestoßen, dass Dateideskriptoren von untergeordneten Prozessen geerbt werden. Ich habe es später mithilfe des Parameters close_fds = False gelöst. Offizielles Dokument: 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
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonVier Möglichkeiten, Python-Systembefehle auszuführen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:linuxprobe.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!