2013-03-15 6 views
0

Я хочу получить тикер времени в python в реальном времени. Идея здесь в том, что я делаю набор функций снова и снова, но я хочу дать промежуток времени в 10 минут, прежде чем я снова заработаю. для например:таймер времени в python в реальном времени

rigt теперь я это

lst = [1,2,3,4,5] 

while lst: 

    do something 
    lst.pop(0) 
    time.sleep(600) 

это будет просто ждать в течение 10 минут и сделать петлю снова.

Я хочу напечатать в режиме реального времени, оставшиеся секунды, чтобы начать цикл снова. i.e Хочу напечатать

Ожидание 600 секунд
Ожидание 500 секунд и так далее.

Лучше всего было бы изменить только цифры, не печатающие «ожидание» на каждую секунду.

ответ

0

Во-первых, я думаю, что вы должны сделать тикер в отдельном потоке и поставить «сделать что-нибудь» в другой поток. Чтобы обновить галочку, вы можете использовать Clock.tick.

+0

«must» немного силен. Есть способы сделать это без потоковой передачи. –

0

Вы можете использовать функцию, как это напечатать отсчет:

>>> def countdown(seconds): 
...  while seconds: 
...   sys.stdout.write("\rsleeping for {0}".format(seconds)) 
...   seconds -= 1 
...   time.sleep(1) 

(\r символа является возврат каретки без перевода строки - каждый раз, когда вы выполняете строку, которая выводит текст, он переписывает то, что было там ранее.), поэтому ваш код будет больше похож:

while lst: 

    # do something 
    lst.pop(0) 
    countdown(600) 
+0

Это работает, но не совсем то, что я хочу, спасибо, хотя я пробовал это, >>> lst = [1,2] >>> while lst: ... print "hello \ n" ... обратный отсчет (6) ... lst.pop (0) Я получаю привет проспал 11 привет спать на 12 , но я хочу спать на 6, (5,4 и так далее 1) –

+0

вы заменить «- = 'с' + = 'случайно? Он не должен подсчитывать ... – bgporter

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