当前位置: 首页 > 编程笔记 >

Python实现定时精度可调节的定时器

田化
2023-03-14
本文向大家介绍Python实现定时精度可调节的定时器,包括了Python实现定时精度可调节的定时器的使用技巧和注意事项,需要的朋友参考一下

本文实例为大家分享了Python实现定时精度可调节的定时器,供大家参考,具体内容如下

# -* coding: utf-8 -*- 
 
import sys 
import os 
import getopt 
import threading 
import time 
 
def Usage(): 
  usage_str = '''''说明: 
  \t定时器 
  \timer.py -h 显示本帮助信息,也可以使用--help选项 
  \timer.py -d num 指定一个延时时间(以毫秒为单位) 
  \t          也可以使用--duration=num选项 
  ''' 
  print(usage_str) 
   
   
def args_proc(argv): 
  '''''处理命令行参数''' 
  try: 
    opts, args = getopt.getopt(sys.argv[1:], 'hd:', ['help', 'duration=']) 
  except getopt.GetoptError as err: 
    print('错误!请为脚本指定正确的命令行参数。\n') 
    Usage() 
    sys.exit(255) 
     
  if len(opts) < 1: 
    print('使用提示:缺少必须的参数。') 
    Usage() 
    sys.exit(255) 
     
  usr_argvs = {} 
  for op, value in opts: 
    if op in ('-h', '--help'): 
      Usage() 
      sys.exit(1) 
    elif op in ('-d', '--duration'): 
      if int(value) <= 0: 
        print('错误!指定的参数值%s无效。\n' % (value)) 
        Usage() 
        sys.exit(2) 
      else: 
        usr_argvs['-d'] = int(value) 
    else: 
      print('unhandled option') 
      sys.exit(3) 
 
  return usr_argvs 
   
def timer_proc(interval_in_millisecond): 
  loop_interval = 10   # 定时精度,也是循环间隔时间(毫秒),也是输出信息刷新间隔时间,它不能大于指定的最大延时时间,否则可能导致无任何输出 
  t = interval_in_millisecond / loop_interval 
  while t >= 0: 
    min = (t * loop_interval) / 1000 / 60 
    sec = (t * loop_interval) / 1000 % 60 
    millisecond = (t * loop_interval) % 1000 
    print('\rThe remaining time:%02d:%02d:%03d...' % ( min, sec, millisecond ), end = '\t\t') 
    time.sleep(loop_interval / 1000) 
    t -= 1 
  if millisecond != 0: 
    millisecond = 0 
    print('\rThe remaining time:%02d:%02d:%03d...' % ( min, sec, millisecond ), end = '\t\t') 
  print() 
   
# 应用程序入口 
if __name__ == '__main__': 
  usr_argvs = {} 
  usr_argvs = args_proc(sys.argv) 
  for argv in usr_argvs: 
    if argv in ( '-d', '--duration'): 
      timer_proc(usr_argvs[argv]) 
    else: 
      continue 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。

 类似资料:
  • 有时我会得到这样的输出,即上一个任务结束和下一个任务开始之间的时间小于,大约为。 它是由于某种粒度而正常还是为什么会发生?这个delta值有什么保证吗?

  • 本文向大家介绍python定时截屏实现,包括了python定时截屏实现的使用技巧和注意事项,需要的朋友参考一下 写在前面 因为暂时还没有想好做什么具体的某个项目来提升对python的理解,所以就自己想着做一下小玩意来加强一下自己对一些库和方法的理解 分析 1、截屏 截屏的话有pillow这个模块,并且就两条语句,后面会看到 2、定时任务 定时的话涉及到时间,所以会引入time这个模块 3、保存 保

  • 本文向大家介绍python实现定时播放mp3,包括了python实现定时播放mp3的使用技巧和注意事项,需要的朋友参考一下 程序很简单,主要是 mp3play 模块的应用 演示图:   以上所述就是本文的全部内容了,希望大家能够喜欢。

  • 问题内容: 有没有一种方法可以用Python高精度地测量时间-比一秒更精确?我怀疑是否存在跨平台的方法;我对Unix上的高精度时间很感兴趣,尤其是在Sun SPARC计算机上运行的Solaris。 timeit似乎可以进行高精度的时间测量,但是我想直接访问时间值,而不是测量代码段要花多长时间。 问题答案: 标准功能提供亚秒级的精度,尽管该精度因平台而异。对于Linux和Mac,精度为1微秒或0.0

  • Running Events With a Delay # sched_basic.py import sched import time scheduler = sched.scheduler(time.time, time.sleep) def print_event(name, start): now = time.time() elapsed = int(now -

  • 问题内容: 我在玩f2py。我对numpy固有类型和fortran 90类型感到困惑。与python交互时,似乎只能在fortran 90中使用单精度实数。让我用一个例子来说明: 说我有这个fortran 90模块test.f90,可以用f2py编译并导入python中: 我这样编译: f2py -c -m测试test.f90 然后,在python中: IOW,看来f2py不接受双精度。当将输入从