對python pickle的理解

2022-05-29 20:15:14 字數 986 閱讀 9050

python 提供了pickle模組,能將物件進行序列化,將物件以檔案形式存放在磁碟。

幾乎所有的資料型別(列表,字典,集合,類等)都可以用pickle來序列化。但是序列化後的資料可讀性很差。

pickle最主要的兩個函式:

pickle.dump(obj, file[, protocol])    # 序列化物件,並將結果資料流寫入到檔案物件中。

# 引數protocol是序列化模式,預設值為0,表示以文字的形式序列化。protocol的值還可以是1或2,表示以二進位制的形式序列化。

pickle.load(file)        # 反序列化物件。將檔案中的資料解析為乙個python物件。

# 每取一次物件,就要load一次

dump() 和 pickle() 成對存在

其中要注意的是,在load(file)的時候,要讓python能夠找到類的定義,否則會報錯

例子如下:

1

import

pickle

23 info_1 =

4 info_2 = 56

with open('

test.txt

', 'wb'

) as urs_file:

7pickle.dump(info_1, urs_file)

8pickle.dump(info_2, urs_file)910

with open('

test.txt

', 'rb'

) as urs_file:

11while

true:

12try

:13 admin =pickle.load(urs_file)

14print

(admin)

15except

eoferror:

16break

執行結果:

對SQLiteOpenHelper類的理解

使用sqliteopenhelper對資料庫進行版本管理 因為我們開發的軟體可能會安裝在成百上千個使用者的手機上,如果應用使用到了sqlite資料庫,我們必須在使用者初次使用軟體時建立出應用使用到的資料庫表結構及新增一些初始化記錄,另外在軟體公升級的時候,也需要對資料表結構進行更新。那麼,我們如何才...

對pthread cond wait 函式的理解

原文 了解 pthread cond wait 的作用非常重要 它是 posix 執行緒訊號傳送系統的核心,也是最難以理解的部分。首先,讓我們考慮以下情況 執行緒為檢視已鏈結列表而鎖定了互斥物件,然而該列表恰巧是空的。這一特定執行緒什麼也幹不了 其設計意圖是從列表中除去節點,但是現在卻沒有節點。因此...

python pickle模組的用法

pickle用於python特有的型別,和python的資料型別間進行轉換,提供四個功能 dumps,dump,loads,load.pickle 的用法 pickle.dumps 將資料通過特殊的形式轉換為只有python語言認識的字串 pickle.dump 將資料通過特殊的形式轉換只有pyth...