【问题标题】:timer / counter in pythonpython中的定时器/计数器
【发布时间】:2019-01-18 10:08:15
【问题描述】:

大家好。 我正在尝试设置一个带时间的 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 秒,则执行一个脚本...

【问题讨论】:

  • @TrebuchetMS 这肯定不是该链接的重复,因为我正在尝试与 time.sleep() 相反。 time.sleep() 在括号内指定的持续时间内暂停,当我试图让 ledBlue.off() 等于它关闭的一定时间时,在它重新启动程序/脚本/代码之前跨度>

标签: python-3.x timer counter


【解决方案1】:

我制作了一个类似的脚本来强制我孩子的 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

【讨论】:

  • 没问题,我确信它不能满足您的所有要求,但要点就在那里。
  • 我一定会这样做的,谢谢。到目前为止,我不得不尝试一些事情来改进代码,但到目前为止看起来很有希望......
  • 很遗憾,由于某种原因,我没有设法让它与您的代码和一些编辑一起工作。但我确实感谢它确实为我打开了一些视角的帮助。
猜你喜欢
  • 1970-01-01
  • 2010-12-09
  • 1970-01-01
  • 1970-01-01
  • 2023-03-16
  • 1970-01-01
  • 2020-07-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多