тайм-аут строки чтения подпроцесса в python

У меня есть небольшая проблема, которую я не совсем уверен, как решить. Вот минимальный пример:

Что у меня есть

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

Что бы я хотел

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)

Я прочитал строку из подпроцесса и что-то с ним делать. Я хочу выйти, если после фиксированного интервала времени не поступило ни одной строки. Есть рекомендации?

39
задан Marcin 25 May 2012 в 14:42
поделиться