重复一个功能持续时间

时间:2013-02-20 07:41:08

标签: python function timing raspberry-pi

在python 3中你怎么能重复一个函数说10秒。在这种情况下,该功能将树莓pi上的输出高低转动特定的时间。这需要在发生此事件之前指定的时间内发生。

2 个答案:

答案 0 :(得分:0)

尝试:

def run_wrapper(sec):
    starttime = datetime.datetime.now()
    endtime = None
    while True:
        f()
        endtime = datetime.datetime.now()
        if (endtime - starttime).total_seconds() >= sec:
            break
    print('Ran for %s seconds' % (endtime - starttime).total_seconds())

其中f是您要调用的函数。请注意,这不适用于完全 sec秒。如果sec秒没有通过,它会调用该函数。例如,如果你的函数需要30秒,而你指定31秒,你的函数将被调用两次,总共60秒。

答案 1 :(得分:0)

如果您不需要在整个持续时间内连续重新调用该函数,那么您可以这样做:

import time
f()
time.sleep(sec)
g()

此处f是导致某些结果被g撤消的函数;由于gsec秒过后才会被调用,f的结果将在您需要的时间内保持有效。

编辑:如果f需要花费大量时间并且您需要更精确,请尝试以下操作:

import time
before_f = time.clock()
f()
after_f = time.clock()
time.sleep(sec-(after_f-before_f))
g()