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中下划线的使用方法
Mar 27 Python
Python使用smtp和pop简单收发邮件完整实例
Jan 09 Python
Python中使用__new__实现单例模式并解析
Jun 25 Python
python3射线法判断点是否在多边形内
Jun 28 Python
Python K最近邻从原理到实现的方法
Aug 15 Python
Python Numpy 自然数填充数组的实现
Nov 28 Python
python 实现矩阵填充0的例子
Nov 29 Python
python中数据库like模糊查询方式
Mar 02 Python
Python HTTP下载文件并显示下载进度条功能的实现
Apr 02 Python
如何理解Python中包的引入
May 29 Python
Python中常见的导入方式总结
May 06 Python
pytorch中的torch.nn.Conv2d()函数图文详解
Feb 28 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 来访国内外IP判断代码并实现页面跳转
2009/12/18 PHP
php输出表格的实现代码(修正版)
2010/12/29 PHP
浅析PHP中的UNICODE 编码与解码
2013/06/29 PHP
jQuery+PHP+ajax实现微博加载更多内容列表功能
2014/06/27 PHP
php之curl实现http与https请求的方法
2014/10/21 PHP
php实现事件监听与触发的方法
2014/11/21 PHP
php实现登录tplink WR882N获取IP和重启的方法
2016/07/20 PHP
些很实用且必用的小脚本代码
2006/06/26 Javascript
jquery中文乱码的多种解决方法
2013/06/21 Javascript
为Javascript中的String对象添加去除左右空格的方法(示例代码)
2013/11/30 Javascript
js获取url参数代码实例分享(JS操作URL)
2013/12/13 Javascript
jquery+ajax请求且带返回值的代码
2015/08/12 Javascript
Bootstrap的图片轮播示例代码
2015/08/31 Javascript
JavaScript实现点击按钮直接打印
2016/01/06 Javascript
分享我对JS插件开发的一些感想和心得
2016/02/04 Javascript
jQuery  ready方法实现原理详解
2016/10/19 Javascript
详解ECMAScript6入门--Class对象
2017/04/27 Javascript
Bootstrap输入框组件使用详解
2017/06/09 Javascript
基于react后端渲染模板引擎noox发布使用
2018/01/11 Javascript
JS实现读取xml内容并输出到div中的方法示例
2018/04/19 Javascript
vue监听input标签的value值方法
2018/08/27 Javascript
NodeJS有难度的面试题(能答对几个)
2019/10/09 NodeJs
使用node.JS中的url模块解析URL信息
2020/02/06 Javascript
Vue的自定义组件不能使用click方法的解决
2020/07/28 Javascript
Python中Threading用法详解
2017/12/27 Python
Django自定义过滤器定义与用法示例
2018/03/22 Python
详解Python3.6安装psutil模块和功能简介
2018/05/30 Python
opencv python 傅里叶变换的使用
2018/07/21 Python
在Python中获取操作系统的进程信息
2019/08/27 Python
Python3.6 + TensorFlow 安装配置图文教程(Windows 64 bit)
2020/02/24 Python
家得宝加拿大家装网上商店:The Home Depot加拿大
2016/08/27 全球购物
送给程序员的20个Java集合面试问题
2014/08/06 面试题
环卫个人总结
2015/03/03 职场文书
Pandas||过滤缺失数据||pd.dropna()函数的用法说明
2021/05/14 Python
QT连接MYSQL数据库的详细步骤
2021/07/07 MySQL
win10+RTX3050ti+TensorFlow+cudn+cudnn配置深度学习环境的方法
2022/06/25 Servers