我的python菜鳥之路19
阿新 • • 發佈:2020-07-26
---------------------------模組基礎知識補充------------------------------
在第180節課路徑的引入是python更新的原因嗎???
-
**print(_ file _) :file雙下劃線------->表明執行當前任務的路徑 **
#列印當前目錄的上一級目錄 import os v1 = os.path.dirname(__file__) print(v1)
關於json函式的補充
-
json中關於python的對照表
-
當字典、列表、元組序列化中出現的漢字,如何讓漢字完全的表現出來
v = {'k1':'yang','k2':'楊子列'} import json val = json.dumps(v,ensure_ascii=False) #引入ensure_ascii=False print(val)
-
注意區分以下結果關於元組的
v = ('楊子列','楊馳') import json val = json.dumps(v) print(val) v = ('楊子列','楊馳',[1,2,3]) #元組是可以做json的容器的,但作為容器中一個元素會被當做列表 import json val = json.dumps(v) print(val) v = [('楊子列','楊馳')] import json val = json.dumps(v) print(val) #此處生成的元組是一個列表
-
json.dump
-
序列化後並寫入一個指定的檔案
f = open('x.txt',mode='w',encoding ="utf-8") v = ('楊子列','楊馳',[1,2,3]) import json val = json.dump(v,f) print(val)
-
-
json.load
-
將檔案中的內容反序列化
f = open('x.txt',mode='r',encoding ="utf-8") import json val = json.load(f) f.close() print(val)
-
json和pickle
-
json, 優點:所有語言通用; 缺點:只能序列化基本內容
-
pickle,優點:python中所有東西均能被序列化(socket物件除外),缺點:不可讀,序列化的內容只有python認識
-
利用pickle進行序列化與樊序列化
#利用pickle模組對集合進行序列化與反序列化 v = {1,2,3,3} import pickle val = pickle.dumps(v) print (val) data = pickle.loads(val) print(data) #元組作為一個元素同樣是可行的 v = (1,2,3,3,[1,2,3]) import pickle val = pickle.dumps(v) print (val) data = pickle.loads(val) print(data)
-
**利用pickl對函式進行序列化與反序列化 **
def func(): print("yang") import pickle v1 = pickle.dumps(func) v2 = pickle.loads(v1) print(v1,v2,sep = "\n") #sep:同時列印兩個物件時進行換行
-
pickle的dump和loads
import pickle v = {1,2,3,4} print(pickle.dumps(v)) #此處呈現的是二進位制,因此在讀檔案時的是二進位制的 f = open('x.txt',mode="wb") v1 = pickle.dump(v,f) print(v1) f = open('x.txt',mode="rb") v2 = pickle.load(f) print(v2)
-