摘要:利用標準庫中的的模塊可以將對象轉換為一種可以傳輸或存儲的格式。主要方法模塊中有兩個主要函數,它們是和。具體語法為返回一個字符串,而不是存入文件中。該方法用于反序列化,即將序列化的對象重新恢復成對象。除此之外,這兩個模塊的接口是幾乎完全相同。
對象存在于程序運行時的內存中,當程序不再運行時或斷電關機時,這些對象便不再存在。我現在想把對象保存下來,方便以后使用,這就是持久化技術。
利用 python標準庫中的的pickle模塊可以將對象轉換為一種可以傳輸或存儲的格式。
主要方法如果希望透明地存儲 python 對象,而不丟失其身份和類型等信息,則需要某種形式的對象序列化:它是一個將任意復雜的對象轉成對象的文本或二進制表示的過程。
pickle模塊中有兩個主要函數,它們是dump()和load()。
dump()方法該方法的作用是實現python 對象的序列化,將 obj 保存到 file 中。
具體語法如下:
pickle.dump(obj, file[, protocol])
obj:要持久化保存的對象;
file: 將對象序列化后保存到的類文件對象;
它必須有一個可以接受單字符串作為入參的write() 方法。這個對象可以是一個以寫模式打開的文件對象或者一個 StringIO 對象,或者其他任意滿足條件的接口;
protocol: 可選的參數,默認為 0。0表示所序列化的對象使用可打印的ASCII碼表示;1或True 表示使用老式的二進制協議;2表示使用python2.3版本引入的新二進制協議,比以前的高效;負值表示將使用可用的最高協議版本。
如果 protocol>=1,那么文件對象需要以二進制形式打開。
具體語法為:
pickle.dumps(obj[, protocol])
返回一個字符串,而不是存入文件中。
load()該方法用于反序列化,即將序列化的對象重新恢復成python對象。
具體語法如下:
pickle.load(file)
這個 file 必須是一個擁有一個能接收單整數為參數的 read() 方法以及一個不接收任何參數的 readline() 方法,并且這兩個方法的返回值都應該是字符串。這可以是一個打開為讀的文件對象、StringIO 對象或其他任何滿足條件的對象。
loads()pickle.loads(string)
從字符串中恢復對象。
Pickler()class pickle.Pickler(file[, protocol])
可以使用該對象調用dunmp 和 load 等方法。
clear_memo()對于相同的對象,如果不使用clear_memo()方法,那么python只會pickle一次
cPickle 模塊用例cPickle 是 pickle的優化版, cPickle是 C 編寫的因此它可以比pickle快 1000倍。但是它不支持使用子類化的Pickler()和Unpickler()類,因為在cPickle中,這些都是不是類的功能。大多數應用程序不需要此功能,并可以受益于cPickle的改進性能。除此之外,這兩個模塊的接口是幾乎完全相同。
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
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/38321.html
摘要:模塊里有兩個非常重要的分別是和。返回一個對象,它包括文件的詳細信息。將文檔內的指定文件解壓到當前目錄。為文件路徑,為添加到文檔之后保存的名稱參數表示壓縮方法,它的值可以是或。預留字段,當前實現總是返回。 ZipFile模塊里有兩個非常重要的class, 分別是 ZipFile和ZipInfo。ZipFile是主要的類,用來創建和讀取zip文件,而ZipInfo是存儲的zip文件的每個文...
摘要:本系列以為基礎是的標準網絡請求庫。包含了網絡數據請求,處理改變請求頭和用戶代理,重定向,認證等的函數。超時單位為秒參數必須是的實例返回值返回一個可以作為的對象。返回的個部分,分別是機制網絡位置路徑路徑段參數查詢片段。 本系列以python3.4為基礎urllib是Python3的標準網絡請求庫。包含了網絡數據請求,處理cookie,改變請求頭和用戶代理,重定向,認證等的函數。urlli...
摘要:默認為或者說,是以格式保存對象如果設置為或者,則以壓縮的二進制格式保存對象。但是,要小心坑試圖增加一個坑就在這里當試圖修改一個已有鍵的值時沒有報錯,但是并沒有修改成功。要填平這個坑,需要這樣做多一個參數沒有坑了還用循環一下 pickle pickle是標準庫中的一個模塊,在Python 2中還有一個cpickle,兩者的區別就是后者更快。所以,下面操作中,不管是用import pick...
摘要:酷睿代在年取代了奔騰,主頻遠低于此。該詞被敏捷開發團隊使用較多,含義與形式會略有不同,更改已經開始將垃圾收集器的狀態轉到解釋器,因此每個子解釋器將擁有它自己的本該如此。結論死亡了嗎對于單線程的應用程序,仍然存活。 showImg(https://segmentfault.com/img/remote/1460000019229774); 本文原創并首發于公眾號【Python貓】,未經授...
摘要:酷睿代在年取代了奔騰,主頻遠低于此。該詞被敏捷開發團隊使用較多,含義與形式會略有不同,更改已經開始將垃圾收集器的狀態轉到解釋器,因此每個子解釋器將擁有它自己的本該如此。結論死亡了嗎對于單線程的應用程序,仍然存活。showImg(https://user-gold-cdn.xitu.io/2019/5/19/16ad09f554fdf443); 本文原創并首發于公眾號【Python貓】,未經授...
閱讀 3208·2021-09-30 09:48
閱讀 3485·2021-09-22 16:00
閱讀 1062·2019-08-30 13:08
閱讀 3098·2019-08-30 10:53
閱讀 2410·2019-08-29 18:33
閱讀 1583·2019-08-29 12:47
閱讀 896·2019-08-29 12:16
閱讀 1929·2019-08-26 12:02