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 匹配任意字符(包括换行符)的正则表达式写法
Oct 29 Python
python通过colorama模块在控制台输出彩色文字的方法
Mar 19 Python
详解Python中的__getitem__方法与slice对象的切片操作
Jun 27 Python
Python+Pika+RabbitMQ环境部署及实现工作队列的实例教程
Jun 29 Python
Python中.join()和os.path.join()两个函数的用法详解
Jun 11 Python
深入浅析Python中list的复制及深拷贝与浅拷贝
Sep 03 Python
解决python3 安装完Pycurl在import pycurl时报错的问题
Oct 15 Python
python 自定义异常和异常捕捉的方法
Oct 18 Python
python GUI库图形界面开发之PyQt5时间控件QTimer详细使用方法与实例
Feb 26 Python
Python模拟伯努利试验和二项分布代码实例
May 27 Python
Python3 + Appium + 安卓模拟器实现APP自动化测试并生成测试报告
Jan 27 Python
详解pycharm的python包opencv(cv2)无代码提示问题的解决
Jan 29 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的正则处理函数总结分析
2008/06/20 PHP
PHP 变量定义和变量替换的方法
2009/07/30 PHP
PHP字符串 ==比较运算符的副作用
2009/10/21 PHP
php弹出提示框的是实例写法
2019/09/26 PHP
PHP执行系统命令函数实例讲解
2021/03/03 PHP
range 标准化之获取
2011/08/28 Javascript
thinkphp 表名 大小写 窍门
2015/02/01 Javascript
javascript针对不确定函数的执行方法
2015/12/16 Javascript
JavaScript 数组中最大最小值
2016/06/05 Javascript
JavaScript使用原型和原型链实现对象继承的方法详解
2017/04/05 Javascript
Jquery把获取到的input值转换成json
2017/05/15 jQuery
原生JS实现 MUI导航栏透明渐变效果
2017/11/07 Javascript
vue路由组件按需加载的几种方法小结
2018/07/12 Javascript
对vue事件的延迟执行实例讲解
2018/08/28 Javascript
Vue表单之v-model绑定下拉列表功能
2019/05/14 Javascript
[02:22:36]《加油!DOTA》总决赛
2014/09/19 DOTA
Python实现远程调用MetaSploit的方法
2014/08/22 Python
Python读取ini文件、操作mysql、发送邮件实例
2015/01/01 Python
python处理xml文件的方法小结
2017/05/02 Python
python Pygame的具体使用讲解
2017/11/03 Python
Python实现堡垒机模式下远程命令执行操作示例
2019/05/09 Python
Django ValuesQuerySet转json方式
2020/03/16 Python
python 实现一个图形界面的汇率计算器
2020/11/09 Python
伦敦时尚生活的缩影:LN-CC
2017/01/24 全球购物
一家外企的面试题目(C/C++面试题,C语言面试题)
2014/03/24 面试题
优秀应届毕业生自荐信
2013/11/16 职场文书
自我鉴定三原则
2014/01/13 职场文书
岗位职责的构建方法
2014/02/01 职场文书
工会趣味活动方案
2014/08/18 职场文书
四风批评与自我批评发言稿
2014/10/14 职场文书
融资合作协议书范本
2014/10/17 职场文书
工厂采购员岗位职责
2015/04/07 职场文书
2016中考冲刺决心书
2015/09/22 职场文书
2016年基层党组织创先争优承诺书
2016/03/25 职场文书
关于战胜挫折的名言警句大全!
2019/07/05 职场文书
彻底卸载VMware虚拟机的超详细步骤记录
2022/07/15 Servers