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实现的文件夹清理程序分享
Nov 22 Python
在Python的Flask框架中使用模版的入门教程
Apr 20 Python
解决Python 爬虫URL中存在中文或特殊符号无法请求的问题
May 11 Python
浅谈Pandas:Series和DataFrame间的算术元素
Dec 22 Python
Django web框架使用url path name详解
Apr 29 Python
Python django框架应用中实现获取访问者ip地址示例
May 17 Python
Django MEDIA的配置及用法详解
Jul 25 Python
Django实现发送邮件找回密码功能
Aug 12 Python
python3 Scrapy爬虫框架ip代理配置的方法
Jan 17 Python
Python项目跨域问题解决方案
Jun 22 Python
Python 找出英文单词列表(list)中最长单词链
Dec 14 Python
python中requests库+xpath+lxml简单使用
Apr 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学习的路线图
2013/07/10 PHP
Destoon模板制作简明教程
2014/06/20 PHP
PHP实现简单实用的分页类代码
2016/04/08 PHP
PHP工厂模式、单例模式与注册树模式实例详解
2019/06/03 PHP
Jquery实现点击按钮,连续地向textarea中添加值的实例代码
2014/03/08 Javascript
jQuery瀑布流插件Wookmark使用实例
2014/04/02 Javascript
node.js中的fs.statSync方法使用说明
2014/12/16 Javascript
jQuery实现设置、移除文本框默认值功能
2015/01/13 Javascript
浅谈javascript中call()、apply()、bind()的用法
2015/04/20 Javascript
JavaScript中getUTCMinutes()方法的使用详解
2015/06/10 Javascript
基于Node.js的强大爬虫 能直接发布抓取的文章哦
2016/01/10 Javascript
js仿3366小游戏选字游戏
2016/04/14 Javascript
jQuery图片轮播插件——前端开发必看
2016/05/31 Javascript
vue.js+boostrap项目实践(案例详解)
2016/09/21 Javascript
js 判断登录界面的账号密码是否为空
2017/02/08 Javascript
详解VUE中v-bind的基本用法
2017/07/13 Javascript
微信小程序button组件使用详解
2018/01/31 Javascript
微信小程序项目总结之点赞 删除列表 分享功能
2018/06/25 Javascript
element-ui表格列金额显示两位小数的方法
2018/08/24 Javascript
PostgreSQL Node.js实现函数计算方法示例
2019/02/12 Javascript
js+h5 canvas实现图片验证码
2020/10/11 Javascript
python数据清洗系列之字符串处理详解
2017/02/12 Python
Python排序算法实例代码
2017/08/10 Python
Python断言assert的用法代码解析
2018/02/03 Python
Pycharm无法显示动态图片的解决方法
2018/10/28 Python
对Python 语音识别框架详解
2018/12/24 Python
浅谈Scrapy网络爬虫框架的工作原理和数据采集
2019/02/07 Python
python生成requirements.txt的两种方法
2019/09/18 Python
django框架forms组件用法实例详解
2019/12/10 Python
python数据库编程 Mysql实现通讯录
2020/03/27 Python
windows系统Tensorflow2.x简单安装记录(图文)
2021/01/18 Python
在什么时候需要使用"常引用"
2015/12/31 面试题
警察正风肃纪剖析材料
2014/10/16 职场文书
幼儿园教师个人总结
2015/02/05 职场文书
MySQL中IO问题的深入分析与优化
2022/04/02 MySQL
吉利入股戴姆勒后smart“长大了”
2022/04/21 数码科技