Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich das „subprocess'-Modul von Python mit einer Zeitüberschreitung verwenden?

Wie kann ich das „subprocess'-Modul von Python mit einer Zeitüberschreitung verwenden?

Susan Sarandon
Susan SarandonOriginal
2024-12-26 01:51:08859Durchsuche

How Can I Use Python's `subprocess` Module with a Timeout?

Modul „subprocess“ mit Timeout verwenden

Bei der Python-Programmierung ist es oft notwendig, beliebige Befehle auszuführen und deren Ausgabe abzurufen. Das Modul „subprocess“ bietet hierfür komfortable Funktionen, es fehlt jedoch die Unterstützung von Timeouts. Dies kann eine erhebliche Einschränkung darstellen, wenn erwartet wird, dass der Befehl über einen längeren Zeitraum ausgeführt wird.

Der folgende Code zeigt einen einfachen Ansatz zur Implementierung von Zeitüberschreitungen in Python:

from subprocess import check_output

try:
    output = check_output(cmd, stderr=STDOUT, timeout=seconds)
except CalledProcessError as e:
    handle_error(e)

Die Funktion check_output, eingeführt in Python 3.3, ermöglicht es dem Aufrufer, ein Timeout in Sekunden anzugeben. Wenn der Befehl die angegebene Zeit überschreitet, wird eine CalledProcessError-Ausnahme ausgelöst. Die Ausgabe des Befehls wird in der Variablen „output“ als Byte-String zurückgegeben.

Für Python 2.x-Benutzer kann das Subprocess32-Backport-Modul verwendet werden, um ähnliche Funktionen bereitzustellen.

Die Die obige Lösung macht eine explizite Kommunikation mit dem Prozess überflüssig und bietet einen einfacheren Mechanismus für die Behandlung von Zeitüberschreitungen.

Das obige ist der detaillierte Inhalt vonWie kann ich das „subprocess'-Modul von Python mit einer Zeitüberschreitung verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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