武道之路-煉體期五重天後期
序列化:把對象從內存中變成可存儲和傳輸的過程,反之為反序列化。
不同編程語言間傳遞對象的標準格式json(還有xml),不過在python中json只能序列化簡單的對象,復雜的一般用pickle(有可能不能反序列化)
對於json來說,字典序列化的時候最好都使用雙引號。重要的方法:dumps()和dump()->序列化,loads()和load()->反序列化,
dump把python對象轉換成json對象生成一個fp的文件流,而dumps則是生成了一個字符串,load和loads一樣。
import json,pickle
dict1={"name":"abc","score":77}
with open(‘test.txt‘,‘w‘) as f:
f.write(json.dumps(dict1))#pickle一樣 這裏是寫入
json.dump(dict1,f)#pickle一樣 這裏是寫入
json.loads(f.read()),json.load(f) 這裏是讀取
模塊:本質是一個.py文件,為了實現一些功能(變量,函數,類),文件名:test.py 模塊名:test
包:本質是一個目錄或文件夾,其下必須有個__init__.py文件(放一些模塊)
引入:
import x,y,z as m 引用多個模塊, as 取別名
import test 把test.py文件的代碼解釋一遍賦給test(調用其中變量:test.變量名,調用函數:test.函數名()),跟from test import * 一樣(把其中代碼粘貼過來,不建議如此用,防止變量函數會重復)
from test import x(test下的變量或方法,若防止重復名可取別名 as)
導入包本質就是去執行其下的__init__.py文件。
有時候import 模塊時不在同一目錄下或其下:
imporyt os,sys
__file__當前程序的相對路徑
os.path.abspath(__file__)當前程序的絕對路徑
os.path.dirname(__file__) 去掉最後一個路徑
sys.path.append(url),設置環境變量。
武道之路-煉體期五重天後期