成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

python標(biāo)準(zhǔn)庫學(xué)習(xí)之pickle模塊

寵來也 / 1883人閱讀

摘要:利用標(biāo)準(zhǔn)庫中的的模塊可以將對象轉(zhuǎn)換為一種可以傳輸或存儲的格式。主要方法模塊中有兩個主要函數(shù),它們是和。具體語法為返回一個字符串,而不是存入文件中。該方法用于反序列化,即將序列化的對象重新恢復(fù)成對象。除此之外,這兩個模塊的接口是幾乎完全相同。

對象存在于程序運行時的內(nèi)存中,當(dāng)程序不再運行時或斷電關(guān)機(jī)時,這些對象便不再存在。我現(xiàn)在想把對象保存下來,方便以后使用,這就是持久化技術(shù)。
利用 python標(biāo)準(zhǔn)庫中的的pickle模塊可以將對象轉(zhuǎn)換為一種可以傳輸或存儲的格式。

如果希望透明地存儲 python 對象,而不丟失其身份和類型等信息,則需要某種形式的對象序列化:它是一個將任意復(fù)雜的對象轉(zhuǎn)成對象的文本或二進(jìn)制表示的過程。

主要方法

pickle模塊中有兩個主要函數(shù),它們是dump()和load()。

dump()方法

該方法的作用是實現(xiàn)python 對象的序列化,將 obj 保存到 file 中。
具體語法如下:

pickle.dump(obj, file[, protocol])

obj:要持久化保存的對象;
file: 將對象序列化后保存到的類文件對象;
它必須有一個可以接受單字符串作為入?yún)⒌膚rite() 方法。這個對象可以是一個以寫模式打開的文件對象或者一個 StringIO 對象,或者其他任意滿足條件的接口;
protocol: 可選的參數(shù),默認(rèn)為 0。0表示所序列化的對象使用可打印的ASCII碼表示;1或True 表示使用老式的二進(jìn)制協(xié)議;2表示使用python2.3版本引入的新二進(jìn)制協(xié)議,比以前的高效;負(fù)值表示將使用可用的最高協(xié)議版本。
如果 protocol>=1,那么文件對象需要以二進(jìn)制形式打開。

dumps()

具體語法為:

pickle.dumps(obj[, protocol])

返回一個字符串,而不是存入文件中。

load()

該方法用于反序列化,即將序列化的對象重新恢復(fù)成python對象。
具體語法如下:

pickle.load(file)

這個 file 必須是一個擁有一個能接收單整數(shù)為參數(shù)的 read() 方法以及一個不接收任何參數(shù)的 readline() 方法,并且這兩個方法的返回值都應(yīng)該是字符串。這可以是一個打開為讀的文件對象、StringIO 對象或其他任何滿足條件的對象。

loads()
pickle.loads(string)

從字符串中恢復(fù)對象。

Pickler()
class pickle.Pickler(file[, protocol])

可以使用該對象調(diào)用dunmp 和 load 等方法。

clear_memo()

對于相同的對象,如果不使用clear_memo()方法,那么python只會pickle一次

cPickle 模塊

cPickle 是 pickle的優(yōu)化版, cPickle是 C 編寫的因此它可以比pickle快 1000倍。但是它不支持使用子類化的Pickler()和Unpickler()類,因為在cPickle中,這些都是不是類的功能。大多數(shù)應(yīng)用程序不需要此功能,并可以受益于cPickle的改進(jìn)性能。除此之外,這兩個模塊的接口是幾乎完全相同。

用例
In [2]: try:
   ...:     import cPickle as pickle
   ...: except:
   ...:     import pickle
   ...:

In [3]: info = [1, 2, 3, "hello"]
In [4]: data1 = pickle.dumps(info)
In [5]: print data1
(lp1
I1
aI2
aI3
aS"hello"
p2
a.

In [6]: data2 = pickle.loads(data1)
In [7]: print data2
[1, 2, 3, "hello"]

In [8]: type(data1)
Out[8]: str

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/38321.html

相關(guān)文章

  • python標(biāo)準(zhǔn)庫學(xué)習(xí)之zipfile模塊

    摘要:模塊里有兩個非常重要的分別是和。返回一個對象,它包括文件的詳細(xì)信息。將文檔內(nèi)的指定文件解壓到當(dāng)前目錄。為文件路徑,為添加到文檔之后保存的名稱參數(shù)表示壓縮方法,它的值可以是或。預(yù)留字段,當(dāng)前實現(xiàn)總是返回。 ZipFile模塊里有兩個非常重要的class, 分別是 ZipFile和ZipInfo。ZipFile是主要的類,用來創(chuàng)建和讀取zip文件,而ZipInfo是存儲的zip文件的每個文...

    Magicer 評論0 收藏0
  • Python標(biāo)準(zhǔn)庫學(xué)習(xí)之urllib

    摘要:本系列以為基礎(chǔ)是的標(biāo)準(zhǔn)網(wǎng)絡(luò)請求庫。包含了網(wǎng)絡(luò)數(shù)據(jù)請求,處理改變請求頭和用戶代理,重定向,認(rèn)證等的函數(shù)。超時單位為秒?yún)?shù)必須是的實例返回值返回一個可以作為的對象。返回的個部分,分別是機(jī)制網(wǎng)絡(luò)位置路徑路徑段參數(shù)查詢片段。 本系列以python3.4為基礎(chǔ)urllib是Python3的標(biāo)準(zhǔn)網(wǎng)絡(luò)請求庫。包含了網(wǎng)絡(luò)數(shù)據(jù)請求,處理cookie,改變請求頭和用戶代理,重定向,認(rèn)證等的函數(shù)。urlli...

    NusterCache 評論0 收藏0
  • Python基礎(chǔ)之(十一)數(shù)據(jù)存儲

    摘要:默認(rèn)為或者說,是以格式保存對象如果設(shè)置為或者,則以壓縮的二進(jìn)制格式保存對象。但是,要小心坑試圖增加一個坑就在這里當(dāng)試圖修改一個已有鍵的值時沒有報錯,但是并沒有修改成功。要填平這個坑,需要這樣做多一個參數(shù)沒有坑了還用循環(huán)一下 pickle pickle是標(biāo)準(zhǔn)庫中的一個模塊,在Python 2中還有一個cpickle,兩者的區(qū)別就是后者更快。所以,下面操作中,不管是用import pick...

    Songlcy 評論0 收藏0
  • GIL 已經(jīng)被殺死了么?

    摘要:酷睿代在年取代了奔騰,主頻遠(yuǎn)低于此。該詞被敏捷開發(fā)團(tuán)隊使用較多,含義與形式會略有不同,更改已經(jīng)開始將垃圾收集器的狀態(tài)轉(zhuǎn)到解釋器,因此每個子解釋器將擁有它自己的本該如此。結(jié)論死亡了嗎對于單線程的應(yīng)用程序,仍然存活。 showImg(https://segmentfault.com/img/remote/1460000019229774); 本文原創(chuàng)并首發(fā)于公眾號【Python貓】,未經(jīng)授...

    xietao3 評論0 收藏0
  • GIL 已經(jīng)被殺死了么?

    摘要:酷睿代在年取代了奔騰,主頻遠(yuǎn)低于此。該詞被敏捷開發(fā)團(tuán)隊使用較多,含義與形式會略有不同,更改已經(jīng)開始將垃圾收集器的狀態(tài)轉(zhuǎn)到解釋器,因此每個子解釋器將擁有它自己的本該如此。結(jié)論死亡了嗎對于單線程的應(yīng)用程序,仍然存活。showImg(https://user-gold-cdn.xitu.io/2019/5/19/16ad09f554fdf443); 本文原創(chuàng)并首發(fā)于公眾號【Python貓】,未經(jīng)授...

    番茄西紅柿 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<