Heim > Backend-Entwicklung > Python-Tutorial > So verwenden Sie das Subprocess-Modul zum Ausführen externer Befehle in Python 2.x

So verwenden Sie das Subprocess-Modul zum Ausführen externer Befehle in Python 2.x

王林
Freigeben: 2023-07-29 18:36:30
Original
921 Leute haben es durchsucht

Das Unterprozessmodul von Python bietet eine Möglichkeit, externe Befehle in einem Python-Programm auszuführen. Es ermöglicht uns, mit der Befehlszeile des Betriebssystems zu interagieren und die Ausgabe und das Verhalten externer Programme über Code zu steuern und zu referenzieren. In diesem Artikel wird die Verwendung des Subprocess-Moduls zum Ausführen externer Befehle vorgestellt und einige praktische Codebeispiele bereitgestellt.

  1. Einfache externe Befehle ausführen

Um einfache externe Befehle auszuführen, können Sie die Funktion subprocess.call() des Subprocess-Moduls verwenden. Diese Funktion gibt den Exit-Statuscode des Befehls zurück, nachdem der externe Befehl ausgeführt wurde. subprocess.call()函数。这个函数在执行完外部命令后会返回命令的退出状态码。

import subprocess

# 执行一个简单的外部命令:获取当前目录下的文件列表
subprocess.call('ls')
Nach dem Login kopieren
  1. 获取外部命令的输出

如果想要获取外部命令的输出结果,可以使用subprocess.check_output()函数。这个函数会执行外部命令,并将其输出作为函数的返回值。

import subprocess

# 执行外部命令:获取当前目录下的文件列表
output = subprocess.check_output('ls')
print(output)
Nach dem Login kopieren
  1. 控制外部命令的输入和输出

有时候,我们需要将输入数据传递给外部命令,或者从外部命令中获取实时的输出。subprocess模块提供了Popen类来满足这些需求。

import subprocess

# 执行外部命令:使用cat命令将输入数据输出到标准输出
input_data = b'Hello, World!'
process = subprocess.Popen(['cat'], stdin=subprocess.PIPE, stdout=subprocess.PIPE)
output, error = process.communicate(input=input_data)
print(output)
Nach dem Login kopieren
  1. 执行命令行参数包含空格的外部命令

当外部命令的参数包含空格时,需要将整个命令作为一个字符串传递给subprocess.call()subprocess.check_output()

import subprocess

# 执行外部命令:计算一个数的平方
number = 10
subprocess.call('python -c "print({}**2)"'.format(number), shell=True)
Nach dem Login kopieren

    Erhalten Sie die Ausgabe externer Befehle
    1. Wenn Sie die Ausgabe externer Befehle erhalten möchten, können Sie die Funktion subprocess.check_output() verwenden. Diese Funktion führt den externen Befehl aus und gibt seine Ausgabe als Rückgabewert der Funktion zurück.
    import subprocess
    
    # 执行外部命令:命令不存在
    try:
        subprocess.check_output('nonexistent_command')
    except subprocess.CalledProcessError as e:
        print('Command execution failed:', e)
    Nach dem Login kopieren

      Steuern Sie die Eingabe und Ausgabe externer Befehle

      Manchmal müssen wir Eingabedaten an externe Befehle übergeben oder eine Echtzeitausgabe von externen Befehlen erhalten. Das Unterprozessmodul stellt die Klasse Popen bereit, um diese Anforderungen zu erfüllen. 🎜rrreee
        🎜Externe Befehle ausführen, deren Befehlszeilenparameter Leerzeichen enthalten🎜🎜🎜Wenn die Parameter des externen Befehls Leerzeichen enthalten, muss der gesamte Befehl an subprocess.call() as übergeben werden eine String-- oder subprocess.check_output()-Funktion. 🎜rrreee🎜🎜Fehlerbehandlung hinzugefügt🎜🎜🎜Bei der Ausführung externer Befehle können einige Fehler auftreten, z. B. wenn der Befehl nicht existiert oder die Befehlsausführung fehlschlägt. Wir können die Try-Exception-Anweisung verwenden, um diese Fehler zu behandeln. 🎜rrreee🎜Diese Beispielcodes zeigen, wie Sie das Unterprozessmodul verwenden, um externe Befehle auszuführen. Durch die Verwendung des Unterprozessmoduls können wir einfach mit der Befehlszeile interagieren und das Verhalten externer Programme flexibel steuern. Ob es sich um einen einfachen Befehl oder eine komplexe Aufgabe handelt, das Unterprozessmodul kann uns dabei helfen, dies zu erreichen. 🎜

    Das obige ist der detaillierte Inhalt vonSo verwenden Sie das Subprocess-Modul zum Ausführen externer Befehle in Python 2.x. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage