Что лучший способ состоит в том, чтобы неоднократно выполнять функцию каждый x секунды в Python?

Я считаю, что вам нужно:

df = pd.DataFrame({'col':['']}).append(df, ignore_index=True)
print (df)
     col
0       
1    how
2     to
3   have
4     an
5  empty
6  first
7    row
243
задан Community 23 May 2017 в 02:18
поделиться

3 ответа

Используйте модуль sched , который реализует планировщик события общего назначения.

import sched, time
s = sched.scheduler(time.time, time.sleep)
def do_something(sc): 
    print "Doing stuff..."
    # do your stuff
    s.enter(60, 1, do_something, (sc,))

s.enter(60, 1, do_something, (s,))
s.run()
205
ответ дан Jeff N 23 November 2019 в 03:10
поделиться

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

4
ответ дан bobince 23 November 2019 в 03:10
поделиться

Вы могли бы хотеть рассмотреть Скрученный , который является Python сетевая библиотека, которая реализует Реакторный Шаблон .

from twisted.internet import task, reactor

timeout = 60.0 # Sixty seconds

def doWork():
    #do work here
    pass

l = task.LoopingCall(doWork)
l.start(timeout) # call every sixty seconds

reactor.run()

, В то время как, "в то время как Верный: сон (60)" будет, вероятно, работать Скрученный, вероятно, уже реализует многие опции, в которых Вы будете в конечном счете нуждаться (daemonization, регистрируясь или обработка исключений, как указано bobince) и вероятно будете большим надежным решением

67
ответ дан Benyamin Jafari 23 November 2019 в 03:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: