《Python使用with语句:记录时间&检查路径》

  通过这个来理解with语句是如何进行上下文管理的,我们经常使用with语句打开文件,这样可以避免忘记file.close()的情况,但是理解了with语句的调用逻辑后,可以发现利用with可以方便做很多其他的事情,比如记录时间和检查创建路径等常用方法就可以使用with语句来实现了。

Key Words:Python、with、__enter__、__exit__

Beijing, 2020

作者:RaySue

Agile Pioneer  

文章目录

  • 使用with语句记录时间
  • 使用with语句检查路径

使用with语句记录时间

# coding:utf-8
# @Time : 23/08/2018 16:49
# @Author : SuRuiimport timeclass Timer(object):def __init__(self, verbose=False):self.verbose = verbosedef __enter__(self):self.start = time.time()return selfdef __exit__(self, *args):self.end = time.time()self.secs = self.end - self.startself.msecs = self.secs * 1000  # millisecondsif self.verbose:print('Elapsed time: %4.2f ms' % self.msecs)@propertydef time_used(self):return round(self.msecs, 4)if __name__ == "__main__":with Timer(True) as t:time.sleep(1)print(t.time_used)

使用with语句检查路径

import osclass CheckDirsExist:"""Check [dir1, dir2 ...] is exist or not, if not then create them."""def __init__(self, dir_path_list):self.dir_path_list = dir_path_listself.DirsExistFlag = [False] * self.numdef __enter__(self, *args):for i in range(self.num):if os.path.exists(self.dir_path_list[i]):self.DirsExistFlag[i] = Truereturn selfdef __exit__(self, *args):for i in range(self.num):if not self.DirsExistFlag[i]:os.makedirs(self.dir_path_list[i])@propertydef num(self):return len(self.dir_path_list)def __call__(self, *args, **kwargs):for i in range(self.num):if not self.DirsExistFlag[i]:print("<%s> is creating ..." % self.dir_path_list[i])else:print("<%s> is alreay exists." % self.dir_path_list[i])if __name__ == "__main__":with CheckDirsExist(["./xxx", "./xxx1", "./xxx2"]) as check: check()

使用with语句:记录时间检查路径相关推荐

  1. Python使用with语句:记录时间检查路径

    https://blog.csdn.net/racesu/article/details/111270444

  2. 【项目实战】vue-springboot-pytorch前后端结合pytorch深度学习 html打开本地摄像头 监控人脸和记录时间

    是一个项目的一个功能之一,调试了两小时,终于能够 javascript设置开始计和暂停计时 监控人脸 记录时间了 效果图: 离开页面之后回到页面会从0计时(不是关闭页面,而是页面失去焦点) 离开摄像头 ...

  3. HIVE:窗口函数,用sql语句查询MySQL安装路径和版本

    数据大师: Jmx's Blog | Keep it Simple and Stupid! 猴子 - 知乎公众号(猴子数据分析)著有畅销书<数据分析思维>科普中国专家 回答数 647,获得 ...

  4. mysql从大到小排序_sql语句时间排序 sql语句按照时间排序

    sql语句时间排序 sql语句按照时间排序以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! SQL按时间排序 select ...

  5. 实现计时、时钟,实时获取当前年月日时分秒,记录时间(获取当前的时间,开始计时,计时过程相当于你的电脑时钟)0000年00月00日 00:00:00

    <!doctype html> <html lang="en"> <head><meta charset="UTF-8" ...

  6. apache关于记录真实客户端ip和不记录健康检查日志

    由于负载均衡会转发客户端的请求到web服务器,所以web服务往往记录的是负载均衡的IP,现在可以通过下面的配置,让apache记录真实客户端IP 语法 #LogFormat  "\" ...

  7. Ping记录时间的方法

    很多时候我们需要用ping工具来检测网络的联通性,windows自带ping 工具功能有限.有时候我们需要记录ping的结果,并且需要记录当时的时间. 百度了一下,解决方法如下,复制以下代码到记事本, ...

  8. 极简时钟,记录时间的利器

    Hi,朋友们,晚上好. 今天是好物分享的第 1 期,今晚将给大家推荐的是我和开发者道哥联合制作的一款精美的极简风格的翻页时钟app,它自带计时器和番茄钟,可以让闲置的数码设备也能利用起来,帮助你,高效 ...

  9. Node.js检查路径是文件还是目录

    本文翻译自:Node.js check if path is file or directory I can't seem to get any search results that explain ...

最新文章

  1. Windows软件路由器典型应用:静态路由、RIP和包过滤
  2. 转gsoap使用总结
  3. 001_日志系统的架构模型
  4. uboot引导linux内核,u-boot启动内核的几种方式
  5. 辽宁工业大学计算机复试经验,辽宁工业大学车辆工程考研经验
  6. 带电插拔损坏设备原理_USB接口设备可以带电插拔吗?
  7. HTML:文本格式化标签
  8. C语言typedef
  9. 盘点2014年邮件行业大事件
  10. PM2.5空气质量提醒实验
  11. 一篇文章,教你学会Git
  12. 齐河木凡装饰工程有限公司简介
  13. 【特征】PSI的计算
  14. 从事电商Java后端一年的思考与总结
  15. java io导出excel表格_Java IO 导入导出Excel表格
  16. oracle对应字符集汇总,Oracle字符集子集与超级的对应关系
  17. LDAP添加 memberOf 模块
  18. 搜索引擎友好的HTML
  19. Chrome插件开发入门:如何实现一键上班赖皮
  20. 微信公众号消息推送【专属早安】,五分钟快速实现,不会编程也可以 【--网站已修复】

热门文章

  1. Java InputStream转换为String
  2. Python检查模块
  3. Python – numpy.linspace()
  4. 如何一边训练一遍验证
  5. 为何要进入互联网行业做产品经理?
  6. Hadoop_28_MapReduce_自定义 inputFormat
  7. 求出现重现次数最多的字母,如有多个反复的则都求出来
  8. WdatePicker日历控件用法
  9. RTX——第10章 任务调度-抢占式、时间片和合作式
  10. 【POJ3415】 Common Substrings (SA+单调栈)