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牛刀小试密码爆破
Feb 03 Python
python爬取网站数据保存使用的方法
Nov 20 Python
Python检测生僻字的实现方法
Oct 23 Python
基于Python3 逗号代码 和 字符图网格(详谈)
Jun 22 Python
python验证码识别的示例代码
Sep 21 Python
Python数据类型之Dict字典实例详解
May 07 Python
Python+selenium点击网页上指定坐标的实例
Jul 05 Python
python系列 文件操作的代码
Oct 06 Python
django实现支付宝支付实例讲解
Oct 17 Python
tensorflow实现二维平面模拟三维数据教程
Feb 11 Python
Python解释器以及PyCharm的安装教程图文详解
Feb 26 Python
通过python调用adb命令对App进行性能测试方式
Apr 23 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+dbfile开发小型留言本
2006/10/09 PHP
PHP Curl多线程原理实例详解
2013/11/06 PHP
php调用云片网接口发送短信的实现方法
2017/10/25 PHP
Laravel如何创建服务器提供者实例代码
2019/04/15 PHP
JS日历 推荐
2006/12/03 Javascript
javascript 表单的友好用户体现
2009/01/07 Javascript
javaScript 简单验证代码(用户名,密码,邮箱)
2009/09/28 Javascript
从零开始学习jQuery (十一) 实战表单验证与自动完成提示插件
2011/02/23 Javascript
javaScript(JS)替换节点实现思路介绍
2013/04/17 Javascript
邮箱下拉自动填充选择示例代码附图
2014/04/03 Javascript
js中substring和substr两者区别和使用方法
2015/11/09 Javascript
JavaScript SweetAlert插件实现超酷消息警告框
2016/01/28 Javascript
微信小程序开发经验总结(推荐)
2017/01/11 Javascript
基于jquery实现二级联动效果
2017/03/30 jQuery
JavaScript控制浏览器全屏显示简单示例
2018/07/05 Javascript
在vue中多次调用同一个定义全局变量的实例
2018/09/25 Javascript
Vue.js 中的 v-model 指令及绑定表单元素的方法
2018/12/03 Javascript
微信小程序事件对象中e.target和e.currentTarget的区别详解
2019/05/08 Javascript
js实现多张图片每隔一秒切换一张图片
2019/07/29 Javascript
python 获取et和excel的版本号
2009/04/09 Python
为python设置socket代理的方法
2015/01/14 Python
简单谈谈Python中的元祖(Tuple)和字典(Dict)
2017/04/21 Python
pyqt5 实现在别的窗口弹出进度条
2019/06/18 Python
django做form表单的数据验证过程详解
2019/07/26 Python
Pytorch对Himmelblau函数的优化详解
2020/02/29 Python
详解Anaconda安装tensorflow报错问题解决方法
2020/11/01 Python
使用Python画了一棵圣诞树的实例代码
2020/11/27 Python
python tqdm库的使用
2020/11/30 Python
python接口自动化框架实战
2020/12/23 Python
德国街头和运动文化高品质商店:BSTN Store
2017/08/26 全球购物
高中生期末评语
2014/01/28 职场文书
研究生毕业自我鉴定范文
2014/03/27 职场文书
维稳承诺书
2015/01/20 职场文书
安娜卡列尼娜观后感
2015/06/11 职场文书
教师节主题班会方案
2015/08/17 职场文书
每日六道java新手入门面试题,通往自由的道路
2021/06/30 Java/Android