Python自用函式留存

2021-09-13 23:35:07 字數 4735 閱讀 8400

1. opencv讀取

define:cv_imread(filepath)

function:在python3中由於python3字串採用utf8編碼,cv2.imread將utf8當作本地碼(如gbk),可通過imdecode()函式讀取帶有中文路徑的

parameters:

#在python3中由於python3字串採用utf8編碼,cv2.imread將utf8當作本地碼(如gbk),可通過imdecode()函式讀取帶有中文路徑的。 

defcv_imread

(filepath)

: cv_img=cv2.imdecode(np.fromfile(filepath,dtype=np.uint8),-

1)try:

if cv_img.

any():

#讀取成功

## imdecode讀取的是rgb,如果後續需要opencv處理的話,需要轉換成bgr,轉換後顏色會變化

cv_img=cv2.cvtcolor(cv_img,cv2.color_rgb2bgr)

return cv_img

except attributeerror:

#讀取失敗,此時cv_img為none,呼叫cv_img.any()會產生valueerror

print

('valueerror: {}'

.format

(filepath)

)return

none

2. list to string
def

list2str

(li, dvide)

:return dvide.join(

list

(map

(str

, li)

))

示例:

in[95]: list2str([23,5,『sd』], 『,』)

out[95]: 『23,5,sd』

3. 擷取路徑名
def

get_path_name

(directory, num=

1, reverse=

false):

if num ==0:

pos = directory.rfind(

'.')

pos_start = directory.rfind(

'\\'

)return directory[pos_start+

1:pos]

# 若無字尾名,則返回none

elif reverse:

return directory[

:directory.rfind(directory.split(

'\\')[

-num])]

else

:return directory.split(

'\\')[

-num]

示例:

in[5]: get_path_name(r』d:\working\edge_detection\kcacp-master\python\data\output\blurry_output.txt』)

out[5]: 『blurry_output.txt』

in[6]: get_path_name(r』d:\working\edge_detection\kcacp-master\python\data\output\blurry_output.txt』,2)

out[6]: 『output』

in[7]: get_path_name(r』d:\working\edge_detection\kcacp-master\python\data\output\blurry_output.txt』,1, true)

out[7]: 『d:\working\edge_detection\kcacp-master\python\data\output』

4. 搜尋目錄下檔案
import glob

search_dir =

'/home/***x'

# 搜尋/home/***x資料夾下所有檔案/資料夾(若為空資料夾,則以該資料夾結尾,無字尾ext)

glob.glob(search_dir+

'/**'

, recursive=

true

)# 搜尋/home/***x資料夾下包括子資料夾所有以.py結尾的檔案

glob.glob(search_dir+

'/**/*.py'

, recursive=

true

)# 返回乙個list,其中包括所有搜尋到的檔案/資料夾的絕對路徑

def

glob_files

(directory, ext_list=

none

, search_deep=

0, search_add=

false

, search_all=

false):

""" 目錄下搜尋檔案,並返回list

:param directory: 搜尋目錄

:param ext_list: 目標字尾list,為none時搜尋所有檔案和目錄

:param search_deep: 搜尋深度,為0時搜尋當前目錄下所有檔案;為1時搜尋當前目錄下所有子目錄下所有檔案

:param search_add: 結合search_deep使用,為false時只返回search_deep下的搜尋結果;為true時返回當前目錄直到search_deep下所有結果

:param search_all: 是否遞迴搜尋directory下所有檔案,為true時其他三個引數中僅ext_list生效(ext_list為none時返回目錄及所有子目錄下所有格式的檔案及空資料夾)

:return:

"""file_list =

if search_all:

if ext_list ==

none

: file_list = glob.glob(directory +

'/**'

, recursive=

true

)else

:for ext in ext_list:

file_list += glob.glob(directory +

'/**/*.{}'

.format

(ext)

, recursive=

true

)else

: glob_content =

''if search_add:

for i in

range

(search_deep+1)

: glob_content +=

'/*'

if ext_list ==

none

: file_list += glob.glob(directory +

'{}*'

.format

(glob_content)

)else

:for ext in ext_list:

file_list += glob.glob(directory +

'{}.{}'

.format

(glob_content, ext)

)else

:for i in

range

(search_deep+1)

: glob_content +=

'/*'

if ext_list ==

none

: file_list += glob.glob(directory +

'{}*'

.format

(glob_content)

)else

:for ext in ext_list:

file_list += glob.glob(directory +

'{}.{}'

.format

(glob_content, ext)

)return file_list

示例:

temp = glob_files(r'd:\desktop\shishuai.yan\desktop\my nutstore\code\python',[

'py'

], search_deep=

0, search_add=

false

, search_all=

true

)print

(len

(temp)

)print

(temp)

871

[『d:\desktop\yan\desktop\my nutstore\code\python\cos_calculate.py』, 『d:\desktop\yan\desktop\my nutstore\code\python\computer vision\deep_learning\task_one\common\layers.py』, …]

自用 python模組

系統相關的資訊模組 import sys sys argv 是乙個list 包含所有的命令列引數.sys.stdout sys stdin sys stderr 分別表示標準輸入輸出,錯誤輸出的檔案物件.sys.stdin readline 從標準輸入讀一行 sys.stdout write a 螢...

Python筆記自用

多個list對應元素運算list1 1 2,3 4 list2 5 6,7 8 list3 list map lambda a,b a b,list1,list2 print list3 5 12,21 32 宣告為全域性變數 在變數前加乙個globle 或者寫在乙個.py檔案中,然後import該...

自用封裝javascript函式

function jhrz img arr.loading static images loading.gif static images loading gray.gif jhrz img arr.normal static images normal.gif window jhrz img ar...