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


Posted in Python onApril 15, 2018

本文实例为大家分享了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

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

Python 相关文章推荐
python实现系统状态监测和故障转移实例方法
Nov 18 Python
对Python新手编程过程中如何规避一些常见问题的建议
Apr 01 Python
Python获取任意xml节点值的方法
May 05 Python
Python使用Supervisor来管理进程的方法
May 28 Python
python学习之hook钩子的原理和使用
Oct 25 Python
如何使用python把ppt转换成pdf
Jun 29 Python
使用pycharm在本地开发并实时同步到服务器
Aug 02 Python
解决Tensorboard可视化错误:不显示数据 No scalar data was found
Feb 15 Python
Pycharm激活方法及详细教程(详细且实用)
May 12 Python
记录模型训练时loss值的变化情况
Jun 16 Python
python获取命令行参数实例方法讲解
Nov 02 Python
python+pyhyper实现识别图片中的车牌号思路详解
Dec 24 Python
Python编写一个优美的下载器
Apr 15 #Python
python实现音乐下载器
Apr 15 #Python
tensorflow 1.0用CNN进行图像分类
Apr 15 #Python
tensorflow学习笔记之mnist的卷积神经网络实例
Apr 15 #Python
tensorflow学习笔记之简单的神经网络训练和测试
Apr 15 #Python
Pytorch入门之mnist分类实例
Apr 14 #Python
pytorch构建网络模型的4种方法
Apr 13 #Python
You might like
一篇入门的php Class 文章
2007/04/04 PHP
PHP异常处理Exception类
2015/12/11 PHP
php文件上传 你真的掌握了吗
2016/11/28 PHP
常用的javascript function代码
2008/05/23 Javascript
JavaScript入门教程(7) History历史对象
2009/01/31 Javascript
checkbox使用示例
2013/08/23 Javascript
jquery渐隐渐显的图片幻灯闪烁切换实现方法
2015/02/26 Javascript
JavaScript获取表格(table)当前行的值、删除行、增加行
2015/07/03 Javascript
jQuery简单实现提交数据出现loading进度条的方法
2016/03/29 Javascript
js时间比较 js计算时间差的简单实现方法
2016/08/26 Javascript
bootstrap multiselect下拉列表功能
2017/08/22 Javascript
JavaScript正则表达式和级联效果
2017/09/14 Javascript
使用Vue.js开发微信小程序开源框架mpvue解析
2018/03/20 Javascript
JavaScript创建对象的常用方式总结
2018/08/10 Javascript
Vue实现搜索结果高亮显示关键字
2019/05/28 Javascript
深入解读VUE中的异步渲染的实现
2020/06/19 Javascript
使用相同的Apache实例来运行Django和Media文件
2015/07/22 Python
Python中的字符串切片(截取字符串)的详解
2019/05/15 Python
python 批量添加的button 使用同一点击事件的方法
2019/07/17 Python
Python Selenium 之数据驱动测试的实现
2019/08/01 Python
使用Django实现把两个模型类的数据聚合在一起
2020/03/28 Python
Python如何实现FTP功能
2020/05/28 Python
python json.dumps() json.dump()的区别详解
2020/07/14 Python
Pycharm Plugins加载失败问题解决方案
2020/11/28 Python
Canvas多边形绘制的实现方法
2019/08/05 HTML / CSS
C#面试题
2016/05/06 面试题
销售演讲稿范文
2014/01/08 职场文书
人力资源管理求职信
2014/08/07 职场文书
2014年六五普法工作总结
2014/11/25 职场文书
军训后的感想
2015/08/07 职场文书
欢送领导祝酒词
2015/08/12 职场文书
让人瞬间清醒的句子,句句经典,字字如金
2019/07/08 职场文书
Apache压力测试工具的安装使用
2021/03/31 Servers
基于Python编写简易版的天天跑酷游戏的示例代码
2022/03/23 Python
Python 统计序列中元素的出现频度
2022/04/26 Python
sql注入报错之注入原理实例解析
2022/06/10 MySQL