使用with語句 記錄時間 檢查路徑

2021-10-12 05:52:15 字數 2467 閱讀 6612

《python使用with語句:記錄時間&檢查路徑》

通過這個來理解with語句是如何進行上下文管理的,我們經常使用with語句開啟檔案,這樣可以避免忘記file.close()的情況,但是理解了with語句的呼叫邏輯後,可以發現利用with可以方便做很多其他的事情,比如記錄時間和檢查建立路徑等常用方法就可以使用with語句來實現了。

key words:python、with、__enter__、__exit__

beijing, 2020

agile pioneer  

# coding:utf-8 

# @time : 23/08/2018 16:49

# @author : surui

import time

class

timer

(object):

def__init__

(self, verbose=

false):

self.verbose = verbose

def__enter__

(self)

: self.start = time.time(

)return self

def__exit__

(self,

*args)

: self.end = time.time(

) self.secs = self.end - self.start

self.msecs = self.secs *

1000

# milliseconds

if self.verbose:

print

('elapsed time: %4.2f ms'

% self.msecs)

@property

deftime_used

(self)

:return

round

(self.msecs,4)

if __name__ ==

"__main__"

:with timer(

true

)as t:

time.sleep(1)

print

(t.time_used)

import os

class

checkdir***ist

:"""

check [dir1, dir2 ...] is exist or not, if not then create them.

"""def__init__

(self, dir_path_list)

: self.dir_path_list = dir_path_list

self.dir***istflag =

[false

]* self.num

def__enter__

(self,

*args)

:for i in

range

(self.num)

:if os.path.exists(self.dir_path_list[i]):

self.dir***istflag[i]

=true

return self

def__exit__

(self,

*args)

:for i in

range

(self.num):if

not self.dir***istflag[i]

: os.makedirs(self.dir_path_list[i]

) @property

defnum

(self)

:return

len(self.dir_path_list)

def__call__

(self,

*args,

**kwargs)

:for i in

range

(self.num):if

not self.dir***istflag[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 checkdir***ist(

["./***"

,"./***1"

,"./***2"])

as check: check(

)

使用 EXPLAIN 關鍵字 檢查SQL語句效率

explain詳細說明 通過explain可以知道mysql是如何處理語句,分析出查詢或是表結構的效能瓶頸。通過expalin可以得到 1.表的讀取順序 2.表的讀取操作的操作型別 3.哪些索引可以使用 4.哪些索引被實際使用 5.表之間的引用 6.每張表有多少行被優化器查詢 通過explain s...

mysql常用sql語句執行時間記錄 sql優化

資料量 3200000條 1.1 數量查詢select count 1 from users 耗時 12.997sselect count from users 耗時 12.449sselect count id from users id是主鍵 耗時 12.414sselect count pas...

SQL語句使用時間和日期的函式

getdate 獲取系統當前時間 dateadd datepart,number,date 計算在乙個時間的基礎上增加乙個時間後的新時間值,比如 dateadd yy,30,getdate datediff datepart,startdate,enddate 計算兩個時間的差值,比如 datedi...