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

實例講解python中的序列化知識點

 更新時間:2018年10月08日 11:39:32   投稿:laozhang  
本篇文章通過代碼實例給大家詳細分享了關于python中的序列化知識點內容,有興趣的朋友們可以學習下。

在程序運行的過程中,所有的變量都是在內存中,比如,定義一個dict:

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

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

我們把變量從內存中變成可存儲或傳輸的過程稱之為序列化,在Python中叫pickling,在其他語言中也被稱之為serialization,marshalling,flattening等等,都是一個意思。

序列化之后,就可以把序列化后的內容寫入磁盤,或者通過網絡傳輸到別的機器上。

反過來,把變量內容從序列化的對象重新讀到內存里稱之為反序列化,即unpickling。

Python提供了pickle模塊來實現序列化。

首先,我們嘗試把一個對象序列化并寫入文件:

>>> 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()方法把任意對象序列化成一個bytes,然后,就可以把這個bytes寫入文件?;蛘哂昧硪粋€方法pickle.dump()直接把對象序列化后寫入一個file-like Object:

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

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

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

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

變量的內容又回來了!

當然,這個變量和原來的變量是完全不相干的對象,它們只是內容相同而已。

Pickle的問題和所有其他編程語言特有的序列化問題一樣,就是它只能用于Python,并且可能不同版本的Python彼此都不兼容,因此,只能用Pickle保存那些不重要的數據,不能成功地反序列化也沒關系。

以上就是本篇文章所講述的所有內容,這篇文章主要介紹了python序列化的相關知識,希望你能借助資料從而理解上述所說的內容。希望我在這片文章所講述的內容能夠對你有所幫助,讓你學習python更加輕松。

相關文章

  • pyCharm 實現關閉代碼檢查

    pyCharm 實現關閉代碼檢查

    這篇文章主要介紹了pyCharm 實現關閉代碼檢查,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • Pycharm配置Qt Designer及Pyuic的實現方法

    Pycharm配置Qt Designer及Pyuic的實現方法

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

    Python中裝飾器兼容加括號和不加括號的寫法詳解

    這篇文章主要給大家介紹了關于Python中裝飾器兼容加括號和不加括號寫法的相關資料,文中通過示例代碼介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面來一起看看吧。
    2017-07-07
  • Python文件和異常處理小結

    Python文件和異常處理小結

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

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

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

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

    這篇文章主要介紹了批處理與python代碼混合編程的方法的相關資料,非常不錯,具有參考價值,感興趣的朋友一起學習吧
    2016-05-05
  • Python常見字典內建函數用法示例

    Python常見字典內建函數用法示例

    這篇文章主要介紹了Python常見字典內建函數用法,結合具體實例形式分析了Python字典內建函數實現針對字典的長度、hash運算、鍵值對遍歷、獲取、計算等相關操作技巧,需要的朋友可以參考下
    2018-05-05
  • 怎樣保存模型權重和checkpoint

    怎樣保存模型權重和checkpoint

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

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

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

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

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

最新評論

新源县| 沁源县| 泗洪县| 华坪县| 祁东县| 乌拉特后旗| 崇仁县| 宣城市| 自贡市| 友谊县| 西平县| 衡阳市| 贵溪市| 县级市| 乌拉特前旗| 玉山县| 禹州市| 湖南省| 石阡县| 会宁县| 黔东| 永济市| 射阳县| 韩城市| 盈江县| 康定县| 鄱阳县| 浪卡子县| 宁乡县| 陈巴尔虎旗| 仁化县| 红河县| 浠水县| 永顺县| 若羌县| 双城市| 军事| 泰来县| 铜山县| 衡东县| 迁安市|