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中的算数运算符的用法
May 13 Python
在Django中同时使用多个配置文件的方法
Jul 22 Python
详解使用pymysql在python中对mysql的增删改查操作(综合)
Jan 18 Python
Mac中升级Python2.7到Python3.5步骤详解
Apr 27 Python
Python实现基于TCP UDP协议的IPv4 IPv6模式客户端和服务端功能示例
Mar 22 Python
详谈套接字中SO_REUSEPORT和SO_REUSEADDR的区别
Apr 28 Python
一篇文章彻底搞懂Python中可迭代(Iterable)、迭代器(Iterator)与生成器(Generator)的概念
May 13 Python
nginx+uwsgi+django环境搭建的方法步骤
Nov 25 Python
Python 内置函数globals()和locals()对比详解
Dec 23 Python
基于SpringBoot构造器注入循环依赖及解决方式
Apr 26 Python
QML用PathView实现轮播图
Jun 03 Python
Python可视化学习之seaborn调色盘
Feb 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数组交集的优化代码分析
2011/03/06 PHP
ThinkPHP模板循环输出Volist标签用法实例详解
2016/03/23 PHP
php求今天、昨天、明天时间戳的简单实现方法
2016/07/28 PHP
老生常谈php中传统验证与thinkphp框架(必看篇)
2017/06/10 PHP
thinkPHP微信分享接口JSSDK用法实例
2017/07/07 PHP
jQuery Lightbox 图片展示插件使用说明
2010/04/25 Javascript
jquery 弹出层注册页面等(asp.net后台)
2010/06/17 Javascript
Js组件的一些写法
2010/09/10 Javascript
一个js导致的jquery失效问题的解决方法
2013/11/27 Javascript
javascript打印html内容功能的方法示例
2013/11/28 Javascript
网页广告中JS代码的信息监听示例
2014/04/02 Javascript
JavaScript的Polymer框架中dom-repeat与VM的相关操作
2015/07/29 Javascript
JavaScript中Boolean对象的属性解析
2015/10/21 Javascript
jQuery实现鼠标经过事件的延时处理效果
2020/08/20 Javascript
JavaScript setTimeout使用闭包功能实现定时打印数值
2015/12/18 Javascript
原生js编写autoComplete插件
2016/04/13 Javascript
Highcharts入门之简介
2016/08/02 Javascript
nodejs redis 发布订阅机制封装实现方法及实例代码
2016/12/15 NodeJs
JS实现颜色梯度与渐变效果完整实例
2016/12/30 Javascript
JS数组属性去重并校验重复数据
2020/01/10 Javascript
python中sets模块的用法实例
2014/09/30 Python
使用python在本地电脑上快速处理数据
2017/06/22 Python
浅析python打包工具distutils、setuptools
2018/04/20 Python
python分别打包出32位和64位应用程序
2020/02/18 Python
Python tkinter界面实现历史天气查询的示例代码
2020/08/23 Python
Python中BeautifulSoup通过查找Id获取元素信息
2020/12/07 Python
html5嵌入内容_动力节点Java学院整理
2017/07/07 HTML / CSS
为什么要使用servlet
2016/01/17 面试题
中医药大学市场营销专业自荐信
2013/09/29 职场文书
电气工程师岗位职责
2014/01/01 职场文书
《小猫刮胡子》教学反思
2014/02/21 职场文书
教师校本培训方案
2014/02/26 职场文书
公司聘任书模板
2014/03/29 职场文书
村党支部换届选举方案
2014/05/02 职场文书
2016七夕情人节寄语
2015/12/04 职场文书
90条交通安全宣传标语
2019/10/12 职场文书