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中基于生成器的状态机
Apr 13 Python
python打开url并按指定块读取网页内容的方法
Apr 29 Python
django通过ajax发起请求返回JSON格式数据的方法
Jun 04 Python
Python如何读取MySQL数据库表数据
Mar 11 Python
python中利用Future对象回调别的函数示例代码
Sep 07 Python
Zookeeper接口kazoo实例解析
Jan 22 Python
Python函数基础实例详解【函数嵌套,命名空间,函数对象,闭包函数等】
Mar 30 Python
python输出数组中指定元素的所有索引示例
Dec 06 Python
Python代码块及缓存机制原理详解
Dec 13 Python
Python实现发票自动校核微信机器人的方法
May 22 Python
使用Python封装excel操作指南
Jan 29 Python
基于Python实现的购物商城管理系统
Apr 27 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 中的批处理的实现
2007/06/14 PHP
PHP下对字符串的递增运算代码
2010/08/21 PHP
php join函数应用
2011/05/04 PHP
深入探讨:Nginx 502 Bad Gateway错误的解决方法
2013/06/03 PHP
php计算title标题相似比的方法
2015/07/29 PHP
PHP防盗链的基本思想 防盗链的设置方法
2015/09/25 PHP
php微信开发之图片回复功能
2018/06/14 PHP
JS控制表格隔行变色
2006/06/26 Javascript
基于jquery+thickbox仿校内登录注册框
2010/06/07 Javascript
使用JS实现jQuery的addClass, removeClass, hasClass函数功能
2014/10/31 Javascript
原生javascript实现隔行换色
2015/01/04 Javascript
javascript中Date()函数在各浏览器中的显示效果
2015/06/18 Javascript
jQuery EasyUI之DataGrid使用实例详解
2016/01/04 Javascript
详解微信小程序 页面跳转 传递参数
2016/12/08 Javascript
JS笛卡尔积算法与多重数组笛卡尔积实现方法示例
2017/12/01 Javascript
Vue 组件(component)教程之实现精美的日历方法示例
2018/01/08 Javascript
JS运动特效之同时运动实现方法分析
2018/01/24 Javascript
vue实现的下拉框功能示例
2019/01/29 Javascript
JS为什么说async/await是generator的语法糖详解
2019/07/11 Javascript
[00:52]黑暗之门更新 新英雄孽主驾临DOTA2
2016/08/24 DOTA
python 获取本机ip地址的两个方法
2013/02/25 Python
python网络编程学习笔记(10):webpy框架
2014/06/09 Python
Python 读写文件和file对象的方法(推荐)
2016/09/12 Python
Python学习小技巧之列表项的拼接
2017/05/20 Python
Python之多线程爬虫抓取网页图片的示例代码
2018/01/10 Python
python pandas dataframe 行列选择,切片操作方法
2018/04/10 Python
Python 计算任意两向量之间的夹角方法
2019/07/05 Python
Django的Modelforms用法简介
2019/07/27 Python
python3.7通过thrift操作hbase的示例代码
2020/01/14 Python
python opencv 检测移动物体并截图保存实例
2020/03/10 Python
GANT葡萄牙官方商店:拥有美国运动服传统的生活方式品牌
2018/10/18 全球购物
小学教师节活动方案
2014/01/31 职场文书
2014最新党员批评与自我批评材料
2014/09/24 职场文书
商场营业员岗位职责
2015/04/14 职场文书
python如何读取.mtx文件
2021/04/22 Python
微软Win11有哪些隐藏功能? windows11多个功能汇总
2021/11/21 数码科技