python如何统计代码运行的时长


Posted in Python onJuly 24, 2019

1. 背景

有时候,需要统计一段代码运行所用的时长,则可以用到下面的代码。

2. 代码示例

#!/usr/bin/env python
 
import datetime
import time
 
start_time = datetime.datetime.now()
time.sleep(5)
end_time = datetime.datetime.now()
delta = end_time - start_time
delta_gmtime = time.gmtime(delta.total_seconds())
duration_str = time.strftime("%H:%M:%S", delta_gmtime)
 
print "start time:", start_time
print "end time:", end_time
print "delta_gmtime:", delta_gmtime
print "duration:", duration_str

运行效果:

flying-bird@flyingbird:~/examples/python/time_test$ ./time_test.py 
start time: 2015-06-09 20:11:47.437286
end time: 2015-06-09 20:11:52.440018
delta_gmtime: time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=5, tm_wday=3, tm_yday=1, tm_isdst=0)
duration: 00:00:05
flying-bird@flyingbird:~/examples/python/time_test$

3. 进一步优化

在上面的例子中,还是涉及到一些datetime细节。为此,可以进一步封装。如下:

import datetime
import time
 
class TimeDuration(object):
  'Time duration.'
  
  def __init__(self):
    pass
    
  def start(self):
    self.start_time = datetime.datetime.now()
    self.end_time = None
    
  def stop(self):
    if self.start_time is None:
      print "ERROR: start() must be called before stop()."
      return
      
    self.end_time = datetime.datetime.now()
    
  def getDurationStr(self):
    'String of duration with the format "%H:%M:%S".'
    if self.start_time is None or self.end_time is None:
      print "ERROR: start() and stop() must be called first.";
      return
    
    delta = self.end_time - self.start_time
    delta_gmtime = time.gmtime(delta.total_seconds())
    return time.strftime("%H:%M:%S", delta_gmtime)

调用示例:

flying-bird@flyingbird:~/examples/python/time_test$ cat time_test2.py
#!/usr/bin/env python
 
import time
import time_utils
 
duration = time_utils.TimeDuration()
duration.start()
time.sleep(5)
duration.stop()
 
print duration.getDurationStr() 
flying-bird@flyingbird:~/examples/python/time_test$ ./time_test2.py
00:00:05
flying-bird@flyingbird:~/examples/python/time_test$

4. 小结

把一些不熟悉的python细节封装起来,以后调用起来就会简化很多。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现简单ftp客户端的方法
Jun 28 Python
django反向解析URL和URL命名空间的方法
Jun 05 Python
python对日志进行处理的实例代码
Oct 06 Python
Python http接口自动化测试框架实现方法示例
Dec 06 Python
python tools实现视频的每一帧提取并保存
Mar 20 Python
python列表推导式入门学习解析
Dec 02 Python
python爬虫数据保存到mongoDB的实例方法
Jul 28 Python
推荐值得学习的12款python-web开发框架
Aug 10 Python
如何利用python检测图片是否包含二维码
Oct 15 Python
使用Python获取爱奇艺电视剧弹幕数据的示例代码
Jan 12 Python
jupyter notebook指定启动目录的方法
Mar 02 Python
Python调用腾讯API实现人脸身份证比对功能
Apr 04 Python
Django时区详解
Jul 24 #Python
详解Django定时任务模块设计与实践
Jul 24 #Python
Python3中urlencode和urldecode的用法详解
Jul 23 #Python
对python3中的RE(正则表达式)-详细总结
Jul 23 #Python
python正则表达式匹配不包含某几个字符的字符串方法
Jul 23 #Python
python使用百度文字识别功能方法详解
Jul 23 #Python
Python使用type关键字创建类步骤详解
Jul 23 #Python
You might like
php使用百度天气接口示例
2014/04/22 PHP
ThinkPHP查询返回简单字段数组的方法
2014/08/25 PHP
Laravel 5框架学习之环境与配置
2015/04/08 PHP
php版银联支付接口开发简明教程
2016/10/14 PHP
PHP基础之输出缓冲区基本概念、原理分析
2019/06/19 PHP
不安全的常用的js写法
2009/09/15 Javascript
js左侧多级菜单动态的解决方案
2010/02/01 Javascript
原生js操作checkbox用document.getElementById实现
2013/10/12 Javascript
网站内容禁止复制和粘贴、另存为的js代码
2014/02/26 Javascript
JS实现超炫网页烟花动画效果的方法
2015/03/02 Javascript
JavaScript动态修改弹出窗口大小的方法
2015/04/06 Javascript
基于JS实现的倒计时程序实例
2015/07/24 Javascript
JavaScript拖拽、碰撞、重力及弹性运动实例分析
2016/01/08 Javascript
基于 Node.js 实现前后端分离
2016/04/23 Javascript
JS实现HTML标签转义及反转义
2020/04/14 Javascript
vue货币过滤器的实现方法
2017/04/01 Javascript
JS数组交集、并集、差集的示例代码
2017/08/23 Javascript
node.js 用socket实现聊天的示例代码
2017/10/17 Javascript
JS实现计算小于非负数n的素数的数量算法示例
2019/02/26 Javascript
three.js利用射线Raycaster进行碰撞检测
2020/03/12 Javascript
JS脚本实现定时到网站上签到/签退功能
2020/04/22 Javascript
python的keyword模块用法实例分析
2015/06/30 Python
Django的数据模型访问多对多键值的方法
2015/07/21 Python
Python错误处理操作示例
2018/07/18 Python
在python中安装basemap的教程
2018/09/20 Python
使用Python的datetime库处理时间(RPA流程)
2019/11/24 Python
python 贪心算法的实现
2020/09/18 Python
初任培训自我鉴定
2013/10/07 职场文书
学雷锋月活动总结
2014/04/25 职场文书
书香家庭事迹材料
2014/05/09 职场文书
给校长的一封检讨书
2014/09/20 职场文书
离婚协议书怎么写的
2014/12/14 职场文书
毕业论文指导教师评语
2014/12/30 职场文书
七年级思品教学反思
2016/02/20 职场文书
解决sql server 数据库,sa用户被锁定的问题
2021/06/11 SQL Server
关于Python使用turtle库画任意图的问题
2022/04/01 Python