python零碎知識點 2019 08 16

2021-09-26 06:06:06 字數 3520 閱讀 4570

近來在復現meta-sr,寫這系列總結相當於備忘錄,記錄每天遇到的一些python語法知識點,為方便日後不斷複習(小白在成長)

a如果該檔案已存在,檔案指標將會放在檔案的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該檔案不存在,建立新檔案進行寫入。

w開啟乙個檔案只用於寫入。如果該檔案已存在則開啟檔案,並從開頭開始編輯,即原有內容會被刪除。如果該檔案不存在,建立新檔案––

vars() 函式返回物件object的屬性和屬性值的字典物件。

getattr()函式用於返回乙個物件某個屬性值。

open_type =

'a'# 檔案開啟模式

self.log_file =

open

(self.

dir+

'/log.txt'

, open_type)

# open物件

with

open

(self.

dir+

'/config.txt'

, open_type)

as f:

for arg in

vars

(args)

:# # vars() 函式返回物件object的屬性和屬性值的字典物件。

f.write(

'{}: {}\n'

.format

(arg,

getattr

(args, arg)))

# getattr() 函式用於返回乙個物件屬性值。

f.write(

'\n'

)

本例中,args是乙個object物件;vars(args)返回乙個字典;arg是字典中的key值;getattr(args, arg)返回arg對應的屬性值。

out = numpy.asarray(

list

)# not copy

# or

out = numpy.array(

list

)# 缺省會copy乙份資料

# 將資料結構(list,tuple等)轉化為numpy.ndarray;

4.rgbbgr

opencv讀入的預設是bgr形式;可以通過此方法轉化為通用的rgb形式。

rgb = img[..

.,::-1]

os模組是python中最常用的檔案操作模組之一。十分好用!

os.listdir()

files = os.listdir(path)

# 以list形式返回path路徑下所有檔案,

os.path.splitext()用來分離檔名與副檔名

path_01=

'd:/user/wgy/workplace/data/notmnist_large.tar.gar'

path_02=

'd:/user/wgy/workplace/data/notmnist_large'

root_01=os.path.splitext(path_01)

root_02=os.path.splitext(path_02)

dir,file

= os.path.split(path_01)

print

(root_01)

print

(root_02)

print

(dir

)print

(file

)

結果:

# 返回tuple

('d:/user/wgy/workplace/data/notmnist_large.tar', '.gar')

('d:/user/wgy/workplace/data/notmnist_large', '')

d:/user/wgy/workplace/data

notmnist_large.tar.gar

os.path常用模組:

python中os.path常用模組

os.path.sep:路徑分隔符 linux下就用這個了』/』

os.path.altsep: 根目錄

os.path.curdir:當前目錄

os.path.pardir:父目錄

os.path.abspath(path):絕對路徑

os.path.join(): 常用來鏈結路徑

os.path.split(path): 把path分為目錄和檔案兩個部分,以list返回

os.path.splitext(path)

os.walk()用類似於深度遍歷的方式遍歷資料夾中的子資料夾以及檔案。以tuple形式返回(root_path,[file_dirs],[files])

os.walk()本身是乙個生成器物件

path =

/home/wyl/pointer

for path,file_dirs,files in os.walk(path)

:for

dirin dirs:

for img_path, _, files in os.walk(path +

'/'+

dir)

:for

file

in files:

print

(str

(i)+

' '

+file

) i +=

1

函式有了yield之後,函式名+()就變成了生成器。為什麼叫生成器函式?因為它隨著時間的推移生成了乙個數值佇列。一般的函式在執行完畢之後會返回乙個值然後退出,但是生成器函式會自動掛起,然後重新拾起急需執行,他會利用yield關鍵字關起函式,給呼叫者返回乙個值,同時保留了當前的足夠多的狀態,可以使函式繼續執行,生成器和迭代協議是密切相關的,迭代器都有乙個__next__()__成員方法,這個方法要麼返回迭代的下一項,要買引起異常結束迭代。

部落格說明:

def

fib(

max)

:# 生成器函式

n,a,b=0,

0,1while n<

max:

yield b # 返回b,並自動掛起

a,b=b,a+b

n=n+

1return

'done'

a=fib(10)

for i in a:

# 生成器與迭代器的配合使用

print

(i)

零碎知識點

1.反斜槓也可拼接字串 window.nl ad function window.nl ad function 2.在console.log 中新增樣式 var a hello console.log c a,font size 400 background blue color white 3 通...

零碎知識點

比較數值時,不要integer,要int 1,elasticsearch查詢時不識別大寫,應全部轉為小寫.因此建立索引時盡量使用小寫 2.var param param.yanan1 yanan2 此處的用法 param 宣告了json格式的param,param.yanan1 yanan2定義了j...

python零碎知識點 2019 8 19

乙個元素張量可以用item 得到元素值,請注意這裡的print x 和print x.item 值是不一樣的,乙個是列印張量,乙個是列印元素 x torch.randn 2,2 print x 1,1 print x 1,1 item 結果 tensor 0.4279 0.4278833866119...