2015-05-27 9 views
0

Мне интересно, есть ли какой-либо способ, когда я запрашиваю ввод пользователя, если есть способ определить, сколько секунд прошло с момента запроса ввода пользователя?Как определить время бездействия пользователя в приложении python (Linux)?

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

Здесь вход для пользователя:

res = input('Test result? "(P)ass,(F)ail,(R)etry,(S)ave and Quit,(Q)uit": ') 

после 15 минут (900 сек), набор Рез = "S", и продолжить.

Или что-то подобное.

Мое расследование во что-то подобное привело меня к тому, что решение, скорее всего, не будет межплатформенным. И я запускаю этот скрипт в Red Hat Linux. Кроме того, я просматриваю скрипт через PuTTY и выполняю его.

Любая помощь была бы принята с благодарностью.

спасибо.

+0

в linux вы можете использовать проклятия ... но он не будет супер-кросс-платформой, и вам нужно будет изменить многое из вашего кода –

ответ

1

На самом деле это легко сделать на кросс-платформенном пути.

Вы должны быть в состоянии сделать это, запустив поток для обработки ввода пользователя и контролируя поток и время из основного цикла.

Некоторые важные моменты: документ

  • пронизывающих модуля можно найти here.

Ваш код

res = input('Test result? "(P)ass,(F)ail,(R)etry,(S)ave and Quit,(Q)uit": ') 

должен работать от дочернего потока.

  • Для получения требуемого разрешения вы можете отслеживать время через time module.

 Смежные вопросы

  • Нет связанных вопросов^_^