timeout auf Teilprozess in python readline

Ich habe ein kleines Problem, ich bin mir nicht ganz sicher, wie Sie Sie zu lösen. Hier ist ein minimal-Beispiel:

Was ich habe,

scan_process = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
while(some_criterium):
    line = scan_process.stdout.readline()
    some_criterium = do_something(line)

Was ich möchte

scan_process = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
while(some_criterium):
    line = scan_process.stdout.readline()
    if nothing_happens_after_10s:
        break
    else:
        some_criterium = do_something(line)

Lese ich eine Zeile aus einem Teilprozess und tun etwas mit ihm. Was ich will, ist zu beenden, wenn keine Linie kam nach einem festen Zeitintervall. Irgendwelche Empfehlungen?

InformationsquelleAutor der Frage Tom | 2012-05-25

Schreibe einen Kommentar