成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

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

寵來也 / 1917人閱讀

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

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

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

主要方法

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

dump()方法

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

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

obj:要持久化保存的對象;
file: 將對象序列化后保存到的類文件對象;
它必須有一個(gè)可以接受單字符串作為入?yún)⒌膚rite() 方法。這個(gè)對象可以是一個(gè)以寫模式打開的文件對象或者一個(gè) 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])

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

load()

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

pickle.load(file)

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

loads()
pickle.loads(string)

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

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

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

clear_memo()

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

cPickle 模塊

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

用例
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://m.hztianpu.com/yun/38321.html

相關(guān)文章

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

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

    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ù)。超時(shí)單位為秒?yún)?shù)必須是的實(shí)例返回值返回一個(gè)可以作為的對象。返回的個(gè)部分,分別是機(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ù)存儲(chǔ)

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

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

    摘要:酷睿代在年取代了奔騰,主頻遠(yuǎn)低于此。該詞被敏捷開發(fā)團(tuán)隊(duì)使用較多,含義與形式會(huì)略有不同,更改已經(jīng)開始將垃圾收集器的狀態(tài)轉(zhuǎn)到解釋器,因此每個(gè)子解釋器將擁有它自己的本該如此。結(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)隊(duì)使用較多,含義與形式會(huì)略有不同,更改已經(jīng)開始將垃圾收集器的狀態(tài)轉(zhuǎn)到解釋器,因此每個(gè)子解釋器將擁有它自己的本該如此。結(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元查看
<