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之正规地说一句话
Sep 28 Python
python使用wmi模块获取windows下硬盘信息的方法
May 15 Python
Python找出文件中使用率最高的汉字实例详解
Jun 03 Python
Python编程之event对象的用法实例分析
Mar 23 Python
Python数据结构之栈、队列的实现代码分享
Dec 04 Python
Python使用正则表达式获取网页中所需要的信息
Jan 29 Python
Python的CGIHTTPServer交互实现详解
Feb 08 Python
python 单线程和异步协程工作方式解析
Sep 28 Python
计算pytorch标准化(Normalize)所需要数据集的均值和方差实例
Jan 15 Python
关于torch.optim的灵活使用详解(包括重写SGD,加上L1正则)
Feb 20 Python
python 密码学示例——理解哈希(Hash)算法
Sep 21 Python
CocosCreator ScrollView优化系列之分帧加载
Apr 14 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程序--记数器
2006/10/09 PHP
纯PHP生成的一个树叶图片画图例子
2014/04/16 PHP
PHP中的多行字符串传递给JavaScript的两种方法
2014/06/19 PHP
php简单实现MVC
2015/02/05 PHP
php创建多级目录的方法
2015/03/24 PHP
php7 图形用户界面GUI 开发示例
2020/02/22 PHP
accesskey 提交
2006/06/26 Javascript
JS实现self的resend
2010/07/22 Javascript
基于jquery实现漂亮的动态信息提示效果
2011/08/02 Javascript
仿新浪微博登陆邮箱提示效果的js代码
2013/08/02 Javascript
jQuery Validate 验证,校验规则写在控件中的具体实例
2014/02/27 Javascript
必备的JS调试技巧汇总
2016/07/20 Javascript
微信小程序实战之自定义toast(6)
2017/04/18 Javascript
react-native组件中NavigatorIOS和ListView结合使用的方法
2017/09/30 Javascript
在vue中利用全局路由钩子给url统一添加公共参数的例子
2019/11/01 Javascript
PYTHON正则表达式 re模块使用说明
2011/05/19 Python
python获得一个月有多少天的方法
2015/06/04 Python
python转换字符串为摩尔斯电码的方法
2015/07/06 Python
python 的列表遍历删除实现代码
2020/04/12 Python
python使用arcpy.mapping模块批量出图
2017/03/06 Python
Python实现简单的获取图片爬虫功能示例
2017/07/12 Python
Django中STATIC_ROOT和STATIC_URL及STATICFILES_DIRS浅析
2018/05/08 Python
python 图像处理画一个正弦函数代码实例
2019/09/10 Python
Python 3.6 中使用pdfminer解析pdf文件的实现
2019/09/25 Python
python实现智能语音天气预报
2019/12/02 Python
Python基于pip实现离线打包过程详解
2020/05/15 Python
浅谈python opencv对图像颜色通道进行加减操作溢出
2020/06/03 Python
Pycharm添加虚拟解释器报错问题解决方案
2020/10/13 Python
Python爬取豆瓣数据实现过程解析
2020/10/27 Python
详解如何解决H5开发使用wx.hideMenuItems无效果不生效
2021/01/20 HTML / CSS
草莓网英国官网:Strawberrynet UK
2017/02/12 全球购物
Bose英国官方网站:美国知名音响品牌
2020/01/26 全球购物
编辑找工作求职信分享
2014/01/03 职场文书
2014全年工作总结
2014/11/27 职场文书
python 学习GCN图卷积神经网络
2022/05/11 Python
Vue深入理解插槽slot的使用
2022/08/05 Vue.js