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抓取模板之家的CSS模板
Mar 16 Python
详解Python的collections模块中的deque双端队列结构
Jul 07 Python
Python实现简单的四则运算计算器
Nov 02 Python
Django自定义分页与bootstrap分页结合
Feb 22 Python
python实现kMeans算法
Dec 21 Python
Python及Django框架生成二维码的方法分析
Jan 31 Python
Python pip替换为阿里源的方法步骤
Jul 02 Python
Django文件存储 自己定制存储系统解析
Aug 02 Python
解决django无法访问本地static文件(js,css,img)网页里js,cs都加载不了
Apr 07 Python
浅谈tensorflow模型保存为pb的各种姿势
May 25 Python
Django中的模型类设计及展示示例详解
May 29 Python
python 列表推导和生成器表达式的使用
Feb 01 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使用array_search函数实现数组查找的方法
2015/06/12 PHP
php 遍历目录,生成目录下每个文件的md5值并写入到结果文件中
2016/12/12 PHP
详解php中的implements 使用
2017/06/13 PHP
Add a Formatted Table to a Word Document
2007/06/15 Javascript
推荐自用 Javascript 缩图函数 (onDOMLoaded)……
2007/10/23 Javascript
KnockoutJs快速入门教程
2016/05/16 Javascript
jquery实现上传文件大小类型的验证例子(推荐)
2016/06/25 Javascript
AngularJS实现树形结构(ztree)菜单示例代码
2016/09/18 Javascript
vue-cli入门之项目结构分析
2017/04/20 Javascript
详解通过JSON数据使用VUE.JS
2017/05/26 Javascript
打字效果动画的4种实现方法(超简单)
2017/10/18 Javascript
浅谈redux以及react-redux简单实现
2018/08/28 Javascript
解决Js先触发失去焦点事件再执行点击事件的问题
2018/08/30 Javascript
JavaScript RegExp 对象用法详解
2019/09/24 Javascript
Vue实现导航栏菜单
2020/08/19 Javascript
手把手教你实现 Promise的使用方法
2020/09/02 Javascript
解决Vue-cli无法编译es6的问题
2020/10/30 Javascript
Python SQLite3数据库操作类分享
2014/06/10 Python
python2.7安装图文教程
2018/03/13 Python
django用户注册、登录、注销和用户扩展的示例
2018/03/19 Python
python打包压缩、读取指定目录下的指定类型文件
2018/04/12 Python
python使用Matplotlib绘制分段函数
2018/09/25 Python
Pytorch之Variable的用法
2019/12/31 Python
html5 Canvas画图教程(3)—canvas出现1像素线条模糊不清的原因
2013/01/09 HTML / CSS
html5定位获取当前位置并在百度地图上显示
2014/08/22 HTML / CSS
HTML5实现可缩放时钟代码
2017/08/28 HTML / CSS
Sephora丝芙兰澳洲官方网站:国际知名化妆品购物
2016/10/27 全球购物
xml有哪些解析技术?区别是什么
2016/04/26 面试题
程序员跳槽必看面试题总结
2013/06/28 面试题
一封普通求职者的求职信
2013/11/20 职场文书
转让协议书范本
2014/04/15 职场文书
工业设计专业自荐书
2014/06/05 职场文书
2014四风问题对照检查材料范文
2014/09/15 职场文书
义卖募捐活动总结
2015/05/09 职场文书
MySQL慢查询的坑
2021/04/28 MySQL
Pygame Rect区域位置的使用(图文)
2021/11/17 Python