国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

從零學python系列之淺談pickle模塊封裝和拆封數據對象的方法

2020-02-23 05:24:06
字體:
來源:轉載
供稿:網友

封裝是一個將Python數據對象轉化為字節流的過程,拆封是封裝的逆操作,將字節文件或字節對象中的字節流轉化為Python數據對象,不要從不收信任的數據源中拆封數據。可以封裝和拆封幾乎任何Python數據對象,主要包括:

    None , True,False
    整數,浮點數,復數
    字符串,字節,ByteArray對象
    元組,列表,集合,包含可封裝對象的字典
    在一個模塊的頂層定義的函數
    在一個模塊的頂層定義的內置函數
    那是在一個模塊的頂層定義的類
    __dict__或調用__getstate__()的結果是可封裝的類的實例

 pickle模塊中常用的方法有:

    1. pickle.dump(obj, file, protocol=None,)

    必填參數obj表示將要封裝的對象

    必填參數file表示obj要寫入的文件對象,file必須以二進制可寫模式打開,即“wb”

    可選參數protocol表示告知pickler使用的協議,支持的協議有0,1,2,3,默認的協議是添加在Python 3中的協議3,     其他的協議詳情見參考文檔

    2. pickle.load(file,*,fix_imports=True, encoding="ASCII", errors="strict")

    必填參數file必須以二進制可讀模式打開,即“rb”,其他都為可選參數

    3. pickle.dumps(obj):以字節對象形式返回封裝的對象,不需要寫入文件中

    4. pickle.loads(bytes_object): 從字節對象中讀取被封裝的對象,并返回

 pickle模塊可能出現三種異常:

    1. PickleError:封裝和拆封時出現的異常類,繼承自Exception

    2. PicklingError: 遇到不可封裝的對象時出現的異常,繼承自PickleError

    3. UnPicklingError: 拆封對象過程中出現的異常,繼承自PickleError

 pickle應用實例:

代碼如下:
import pickle 

with open("my_profile.txt", "wb") as myprofile: 
    pickle.dump({"name":"AlwaysJane", "age":"20+", "sex":"female"}, myprofile)

with open("my_profile.txt", "rb") as get_myprofile:
    print (pickle.load(get_myprofile))

代碼如下:
import pickle

class Profile:
    name = "AlwaysJane"

pickledclass = pickle.dumps(Profile)
print (pickledclass)
print (pickle.loads(pickledclass))

理解不是很透徹,希望大神們指正錯誤。。。

附上參考文檔

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 静海县| 吴川市| 滦平县| 乌兰县| 浏阳市| 历史| 牟定县| 芒康县| 宁津县| 延寿县| 阜平县| 密山市| 贵阳市| 七台河市| 凌源市| 南澳县| 呼玛县| 南京市| 临清市| 武夷山市| 砚山县| 城固县| 吴堡县| 遵义市| 湖口县| 遂川县| 绍兴市| 丹东市| 阜新| 突泉县| 九龙城区| 曲靖市| 巩义市| 江华| 汪清县| 延津县| 潮安县| 新干县| 静乐县| 平泉县| 荣昌县|