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

 更新时间:2018年04月15日 15:17:21   作者:ccpw_cn  
这篇文章主要为大家详细介绍了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 

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

相关文章

  • PyCharm常用配置和常用插件(小结)

    PyCharm常用配置和常用插件(小结)

    这篇文章主要介绍了PyCharm常用配置和常用插件(小结),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • Python性能分析工具pyinstrument提高代码效率

    Python性能分析工具pyinstrument提高代码效率

    今天分享一个超级实用的 Python 性能分析工具 pyinstrument ,可以快速找到代码运行最慢的部分,帮助提高代码的性能。支持 Python 3.7+ 且能够分析异步代码,仅需一条命令即可显示具体代码的耗时。经常写 Python 的小伙伴一定要用一下
    2021-09-09
  • Python处理CSV与List的转换方法

    Python处理CSV与List的转换方法

    下面小编就为大家分享一篇Python处理CSV与List的转换方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • 利用Python的Django框架中的ORM建立查询API

    利用Python的Django框架中的ORM建立查询API

    这篇文章主要介绍了利用Python的Django框架中的ORM建立查询API,对Managers和QuerySets进行了着重介绍,需要的朋友可以参考下
    2015-04-04
  • 6个Python办公黑科技,助你提升工作效率

    6个Python办公黑科技,助你提升工作效率

    这篇文章主要介绍了Python办公黑科技,文中有非常详细的代码示例,对正在学习python的小伙伴们有非常好的帮助,需要的朋友可以参考下
    2021-08-08
  • 使用Async IO在Python中进行异步编程的步骤详解

    使用Async IO在Python中进行异步编程的步骤详解

    许多程序员都熟悉编写顺序(同步)代码,在异步世界中,事件的发生独立于主程序流程,异步编程范例有助于并发执行这些任务,并确保您可以克服等待时间并更有效地使用资源,本文给大家介绍了使用Async IO在Python中进行异步编程,需要的朋友可以参考下
    2023-11-11
  • Python实现一个列表分割成多个列表的四种示例

    Python实现一个列表分割成多个列表的四种示例

    本文主要介绍了Python实现一个列表分割成多个列表的四种示例,包括使用循环、切片操作、itertools.groupby()和numpy的array_split(),具有一定的参考价值,感兴趣的可以了解一下
    2024-12-12
  • Windows 平台做 Python 开发的最佳组合(推荐)

    Windows 平台做 Python 开发的最佳组合(推荐)

    在 Windows 上如何做 Python 开发呢?相信大神们都会有自己的解决方案,但本文希望介绍微软官方发布的 Terminal 和 Visual Studio Code,希望它们能构建更流畅的 Windows 开发体验,感兴趣的朋友跟随小编一起看看吧
    2020-07-07
  • Python实现提取或替换PPT中文本与图片的示例代码

    Python实现提取或替换PPT中文本与图片的示例代码

    这篇文章主要为大家详细介绍了Python如何实现提取保存ppt中的图片和替换ppt模板的文本,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2023-01-01
  • pyppeteer执行js绕过webdriver监测方法下

    pyppeteer执行js绕过webdriver监测方法下

    这篇文章主要为大家介绍了pyppeteer上执行js并绕过webdriver监测常见方法的上篇,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪
    2022-04-04

最新评论