最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

實(shí)例講解python中的序列化知識(shí)點(diǎn)

 更新時(shí)間:2018年10月08日 11:39:32   投稿:laozhang  
本篇文章通過(guò)代碼實(shí)例給大家詳細(xì)分享了關(guān)于python中的序列化知識(shí)點(diǎn)內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。

在程序運(yùn)行的過(guò)程中,所有的變量都是在內(nèi)存中,比如,定義一個(gè)dict:

d = dict(name='Bob', age=20, score=88)

可以隨時(shí)修改變量,比如把name改成'Bill',但是一旦程序結(jié)束,變量所占用的內(nèi)存就被操作系統(tǒng)全部回收。如果沒(méi)有把修改后的'Bill'存儲(chǔ)到磁盤上,下次重新運(yùn)行程序,變量又被初始化為'Bob'。

我們把變量從內(nèi)存中變成可存儲(chǔ)或傳輸?shù)倪^(guò)程稱之為序列化,在Python中叫pickling,在其他語(yǔ)言中也被稱之為serialization,marshalling,flattening等等,都是一個(gè)意思。

序列化之后,就可以把序列化后的內(nèi)容寫入磁盤,或者通過(guò)網(wǎng)絡(luò)傳輸?shù)絼e的機(jī)器上。

反過(guò)來(lái),把變量?jī)?nèi)容從序列化的對(duì)象重新讀到內(nèi)存里稱之為反序列化,即unpickling。

Python提供了pickle模塊來(lái)實(shí)現(xiàn)序列化。

首先,我們嘗試把一個(gè)對(duì)象序列化并寫入文件:

>>> import pickle
>>> d = dict(name='Bob', age=20, score=88)
>>> pickle.dumps(d)
b'\x80\x03}q\x00(X\x03\x00\x00\x00ageq\x01K\x14X\x05\x00\x00\x00scoreq\x02KXX\x04\x00\x00\x00nameq\x03X\x03\x00\x00\x00Bobq\x04u.'

pickle.dumps()方法把任意對(duì)象序列化成一個(gè)bytes,然后,就可以把這個(gè)bytes寫入文件?;蛘哂昧硪粋€(gè)方法pickle.dump()直接把對(duì)象序列化后寫入一個(gè)file-like Object:

>>> f = open('dump.txt', 'wb')
>>> pickle.dump(d, f)
>>> f.close()

看看寫入的dump.txt文件,一堆亂七八糟的內(nèi)容,這些都是Python保存的對(duì)象內(nèi)部信息。

當(dāng)我們要把對(duì)象從磁盤讀到內(nèi)存時(shí),可以先把內(nèi)容讀到一個(gè)bytes,然后用pickle.loads()方法反序列化出對(duì)象,也可以直接用pickle.load()方法從一個(gè)file-like Object中直接反序列化出對(duì)象。我們打開另一個(gè)Python命令行來(lái)反序列化剛才保存的對(duì)象:

>>> f = open('dump.txt', 'rb')
>>> d = pickle.load(f)
>>> f.close()
>>> d
{'age': 20, 'score': 88, 'name': 'Bob'}

變量的內(nèi)容又回來(lái)了!

當(dāng)然,這個(gè)變量和原來(lái)的變量是完全不相干的對(duì)象,它們只是內(nèi)容相同而已。

Pickle的問(wèn)題和所有其他編程語(yǔ)言特有的序列化問(wèn)題一樣,就是它只能用于Python,并且可能不同版本的Python彼此都不兼容,因此,只能用Pickle保存那些不重要的數(shù)據(jù),不能成功地反序列化也沒(méi)關(guān)系。

以上就是本篇文章所講述的所有內(nèi)容,這篇文章主要介紹了python序列化的相關(guān)知識(shí),希望你能借助資料從而理解上述所說(shuō)的內(nèi)容。希望我在這片文章所講述的內(nèi)容能夠?qū)δ阌兴鶐椭屇銓W(xué)習(xí)python更加輕松。

相關(guān)文章

  • pyCharm 實(shí)現(xiàn)關(guān)閉代碼檢查

    pyCharm 實(shí)現(xiàn)關(guān)閉代碼檢查

    這篇文章主要介紹了pyCharm 實(shí)現(xiàn)關(guān)閉代碼檢查,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-06-06
  • Pycharm配置Qt Designer及Pyuic的實(shí)現(xiàn)方法

    Pycharm配置Qt Designer及Pyuic的實(shí)現(xiàn)方法

    本文介紹了如何安裝Qt designer和Pyuic以及他們的基本用法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • Python中裝飾器兼容加括號(hào)和不加括號(hào)的寫法詳解

    Python中裝飾器兼容加括號(hào)和不加括號(hào)的寫法詳解

    這篇文章主要給大家介紹了關(guān)于Python中裝飾器兼容加括號(hào)和不加括號(hào)寫法的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。
    2017-07-07
  • Python文件和異常處理小結(jié)

    Python文件和異常處理小結(jié)

    本章詳細(xì)介紹了Python中的文件操作和異常處理,包括文件的讀取和寫入、異常的捕獲和處理,以及JSON數(shù)據(jù)的存儲(chǔ)和重構(gòu)代碼的最佳實(shí)踐,通過(guò)示例和解釋,幫助讀者掌握這些關(guān)鍵技能,感興趣的朋友一起看看吧
    2025-03-03
  • Python找出9個(gè)連續(xù)的空閑端口

    Python找出9個(gè)連續(xù)的空閑端口

    這篇文章主要介紹了Python找出9個(gè)連續(xù)的空閑端口的方法,感興趣的小伙伴們可以參考一下
    2016-02-02
  • 批處理與python代碼混合編程的方法

    批處理與python代碼混合編程的方法

    這篇文章主要介紹了批處理與python代碼混合編程的方法的相關(guān)資料,非常不錯(cuò),具有參考價(jià)值,感興趣的朋友一起學(xué)習(xí)吧
    2016-05-05
  • Python常見字典內(nèi)建函數(shù)用法示例

    Python常見字典內(nèi)建函數(shù)用法示例

    這篇文章主要介紹了Python常見字典內(nèi)建函數(shù)用法,結(jié)合具體實(shí)例形式分析了Python字典內(nèi)建函數(shù)實(shí)現(xiàn)針對(duì)字典的長(zhǎng)度、hash運(yùn)算、鍵值對(duì)遍歷、獲取、計(jì)算等相關(guān)操作技巧,需要的朋友可以參考下
    2018-05-05
  • 怎樣保存模型權(quán)重和checkpoint

    怎樣保存模型權(quán)重和checkpoint

    這篇文章主要介紹了如何保存模型權(quán)重和checkpoint,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • Python腳本獲取操作系統(tǒng)版本信息

    Python腳本獲取操作系統(tǒng)版本信息

    本文給大家分享的小技巧是如何利用Python腳本獲取Windows和Linux的系統(tǒng)版本信息,非常的簡(jiǎn)單實(shí)用,有需要的小伙伴可以查看下
    2016-12-12
  • OpenCV視頻流Python多線程處理方法詳細(xì)分析

    OpenCV視頻流Python多線程處理方法詳細(xì)分析

    為OpenCV是搞計(jì)算機(jī)視覺必須要掌握的基礎(chǔ),這篇文章主要給大家介紹了關(guān)于OpenCV視頻流多線程處理的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-11-11

最新評(píng)論

长治市| 白河县| 行唐县| 宜宾县| 永顺县| 九龙城区| 腾冲县| 姜堰市| 云南省| 滦南县| 松阳县| 哈巴河县| 古浪县| 天峨县| 奎屯市| 芦溪县| 黑龙江省| 惠东县| 茂名市| 浏阳市| 东至县| 吉安县| 徐州市| 弥渡县| 措美县| 龙山县| 元阳县| 崇明县| 乌拉特后旗| 绥阳县| 扎赉特旗| 宁城县| 靖州| 通州市| 大石桥市| 富源县| 衡东县| 洛川县| 红原县| 平顶山市| 富顺县|