近來在復現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...