Я пишу простой двойной таймер на Python.(Я использую Linux, и это нужно только для запуска в моей системе.) Идея состоит в том, что скрипт имеет два отдельных таймера, один из которых работает в любой момент времени.Пользователь должен иметь возможность нажать кнопку, чтобы либо переключить таймер, либо приостановить оба.В настоящее время тестовый скрипт выглядит следующим образом:
now = datetime.datetime.now()
until = now + datetime.timedelta(minutes=2)
print now,
while now < until:
print "\r",
now = datetime.datetime.now()
print now,
sys.stdout.flush()
# check stdin here
time.sleep(0.1)
(я пропустил импорт в коде здесь.)
Это выводит текущее значение таймера в стандартный вывод каждые 0,1 секунды., перезаписывая предыдущее значение, когда это происходит.
У меня, однако, возникают проблемы с реализацией линии # check stdin here
.В идеале пользователь должен просто нажимать, скажем, «p», и таймер будет приостановлен.На данный момент у меня есть это вместо time.sleep(0.1)
:
if select.select([sys.stdin],[],[],0.1)[0]:
print sys.stdin.readline().strip()
..., которое работает, за исключением того, что требуется, чтобы пользователь нажал ввод для распознавания команды.Есть ли способ сделать это без необходимости нажатия Enter?