Python學習(四)cPickle的用法

2021-09-26 22:46:47 字數 1366 閱讀 1909

python中有兩個類似的:pickle與cpickle;兩者的關係:「cpickle – a faster pickle」

pickle模組中的兩個主要函式是dump()和load()。dump()函式接受乙個檔案控制代碼和乙個資料物件作為引數,把資料物件以特定的格式儲存到給定的檔案中。當我們使用load()函式從檔案中取出已儲存的物件時,pickle知道如何恢復這些物件到它們本來的格式。

cpickle可以對任意一種型別的python物件進行序列化操作,比如list,dict,甚至是乙個類的物件等。而所謂的序列化,我的粗淺的理解就是為了能夠完整的儲存並能夠完全可逆的恢復。在cpickle中,主要有四個函式可以做這一工作,下面使用例子來介紹。

一、dump: 將python物件序列化儲存到本地的檔案。

>>> import cpickle

>>> data = range(1000)

>>> cpickle.dump(data,open("test\\data.pkl","wb")) 12

3dump函式需要指定兩個引數,第乙個是需要序列化的python物件名稱,第二個是本地的檔案,需要注意的是,在這裡需要使用open函式開啟乙個檔案,並指定「寫」操作。

二、 load:載入本地檔案,恢復python物件

>>> data = cpickle.load(open("test\\data.pkl","rb"))

1同dump一樣,這裡需要使用open函式開啟本地的乙個檔案,並指定「讀」操作

三、 dumps:將python物件序列化儲存到乙個字串變數中

>>> data_string = cpickle.dumps(data)

1四、 loads:從字串變數中載入python物件

>>> data = cpickle.loads(data_string)

1例子:

# -*- coding: utf-8 -*-

import pickle

# 也可以這樣:

# import cpickle as pickle

obj =

# 將 obj 持久化儲存到檔案 tmp.txt 中

pickle.dump(obj, open("tmp.txt", "w"))

# do something else ...

# 從 tmp.txt 中讀取並恢復 obj 物件

obj2 = pickle.load(open("tmp.txt", "r"))

print obj212

3456

78910

11例子:神經網路中模型引數的儲存

Python學習筆記(四)

dict 用 dict 表示 名字 成績 的查詢表如下 d 名字稱為key,對應的成績稱為value,dict就是通過 key 來查詢 value。key不能重複 花括號 表示這是乙個dict,然後按照 key value,寫出來即可。最後乙個 key value 的逗號可以省略。由於dict也是集...

python學習筆記(四)

0.假設你現在拿到了乙個英語句子,需要把這個句子中的每乙個單詞拿出來單獨處理。sentence i am an englist sentence 這時就需要對字串進行分割。sentence.split split 會把字串按照其中的空格進行分割,分割後的每一段都是乙個新的字串,最終返回這些字串組成乙...

Python學習日誌(四)

所有的 python 對像都擁有三個特性 身份,型別和值。身份 每乙個物件都有乙個唯一的身份標識自己,任何物件的身份可以使用內建函式 id 來得到。這個值可以被認為是該物件的記憶體位址。您極少會用到這個值,也不用太關心它究竟是什麼。型別 物件的型別決定了該物件可以儲存什麼型別的值,可以進行什麼樣的操...