Python中的计时器/计数器

时间:2019-01-18 10:08:16

标签: python-3.x timer counter

大家好。 我正在尝试设置带有时间的IF函数,它将检查是否有东西在一定时间内起作用,如果它在一定时间内不起作用,则它将重置/重新启动脚本。

if ledBlue.off() >= 10 seconds
command="sudo python3 project-2.py"

但是,我感觉我会改用计数器 但是我绝对不确定该如何处理。

我目前在本节中使用的代码如下:

if failed:
   ledBlue.off()
   if ledBlue.off() >= 10 seconds
       command="sudo python3 project.py"
       time.sleep(2)
       command="sudo restart service"
       os.system(command)
else:
   ledBlue.on()

如果我对计时器的想法是正确的,那么我将必须实现一个time.counter()函数,以查看ledBlue.off()之前要执行多长时间。

我该如何正确解决这个问题...

我不是要暂停脚本一段时间,而是要查看ledBlue.off()已运行多长时间,如果脚本关闭时间超过10秒钟,请实施一个脚本...

1 个答案:

答案 0 :(得分:0)

我已经制作了一个类似的脚本,用于强制打开我孩子的Roku电视。我会整夜保持这种状态,以确保我的孩子晚上不看电视。 (她有TCL Roku电视)。如果我重构代码供您使用,它将看起来像

#import required libs
import keyboard
...
count = 0
while True:
    if ledBlue.off() = true
        sleep(1)
        count += 1
        if count == 10:
            run_py="sudo python3 project.py"
            os.system(run_py)
            time.sleep(2)
            restart_service="sudo restart service"
            os.system(restart_service)
            count = 0 
        elif keyboard.is_pressed('q'):
            break
        else:
            pass

这有点麻烦,但是是的,知道ledBlue()中的方法可以用来优化它。我添加了键盘库,因为此脚本将继续运行,因此您可以按“ q”以退出循环。

这是我的原始代码:

    def DenyRemote(self):
        state = self.device_pw_state()
        while True:
            sleep(10)
            if state == "PowerOn":
                self.roku._post('/keypress/Power')
            elif keyboard.is_pressed('q'):
                break
            else:
                pass