398 Stimmen

Verwendung des Moduls 'subprocess' mit Timeout

Hier ist der Python-Code, um ein beliebiges Kommando auszuführen, das seine stdout Daten oder lösen bei Exit-Codes ungleich Null eine Ausnahme aus:

proc = subprocess.Popen(
    cmd,
    stderr=subprocess.STDOUT,  # Merge stdout and stderr
    stdout=subprocess.PIPE,
    shell=True)

communicate wird verwendet, um auf das Ende des Prozesses zu warten:

stdoutdata, stderrdata = proc.communicate()

En subprocess Modul unterstützt keine Zeitüberschreitung - die Möglichkeit, einen Prozess, der länger als X Sekunden läuft, zu beenden -, daher, communicate kann ewig dauern, bis es läuft.

Was ist die einfachste Wie lassen sich Zeitüberschreitungen in einem Python-Programm implementieren, das unter Windows und Linux laufen soll?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X