Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich das „subprocess'-Modul von Python mit einer Zeitüberschreitung verwenden?
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!