国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python持久性管理pickle模塊詳細介紹

2020-02-23 06:24:45
字體:
來源:轉載
供稿:網友

持久性就是指保持對象,甚至在多次執行同一程序之間也保持對象。通過本文,您會對 Python對象的各種持久性機制(從關系數據庫到 Python 的 pickle以及其它機制)有一個總體認識。另外,還會讓您更深一步地了解Python 的對象序列化能力。
什么是持久性?

持 久性的基本思想很簡單。假定有一個 Python 程序,它可能是一個管理日常待辦事項的程序,您希望在多次執行這個程序之間可以保存應用程序對象(待辦事項)。換句話說,您希望將對象存儲在磁盤上,便于 以后檢索。這就是持久性。要達到這個目的,有幾種方法,每一種方法都有其優缺點。

例如,可以將對象數據存儲在某種格式的文本文件中,譬如 CSV 文件。或者可以用關系數據庫,譬如 Gadfly、MySQL、PostgreSQL 或者 DB2。這些文件格式和數據庫都非常優秀,對于所有這些存儲機制,Python 都有健壯的接口。

這 些存儲機制都有一個共同點:存儲的數據是獨立于對這些數據進行操作的對象和程序。這樣做的好處是,數據可以作為共享的資源,供其它應用程序使用。缺點 是,用這種方式,可以允許其它程序訪問對象的數據,這違背了面向對象的封裝性原則 — 即對象的數據只能通過這個對象自身的公共(public)接口來訪問。

另外,對于某些應用程序,關系數據庫 方法可能不是很理想。尤其是,關系數據庫不理解對象。相反,關系數據庫會強行 使用自己的類型系統和關系數據模型(表),每張表包含一組元組(行),每行包含具有固定數目的靜態類型字段(列)。如果應用程序的對象模型不能夠方便地轉 換到關系模型,那么在將對象映射到元組以及將元組映射回對象方面,會碰到一定難度。這種困難常被稱為阻礙性不匹配(impedence- mismatch)問題。

一些經過 pickle 的 Python

pickle 模塊及其同類模塊 cPickle 向 Python 提供了 pickle 支持。后者是用 C 編碼的,它具有更好的性能,對于大多數應用程序,推薦使用該模塊。我們將繼續討論 pickle ,但本文的示例實際是利用了 cPickle 。由于其中大多數示例要用 Python shell 來顯示,所以先展示一下如何導入 cPickle ,并可以作為 pickle 來引用它:
代碼如下:
>>> import cPickle as pickle

現在已經導入了該模塊,接下來讓我們看一下 pickle 接口。 pickle 模塊提供了以下函數對: dumps(object) 返回一個字符串,它包含一個 pickle 格式的對象; loads(string) 返回包含在 pickle 字符串中的對象; dump(object, file) 將對象寫到文件,這個文件可以是實際的物理文件,但也可以是任何類似于文件的對象,這個對象具有 write() 方法,可以接受單個的字符串參數; load(file) 返回包含在 pickle 文件中的對象。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 西贡区| 河源市| 延安市| 长乐市| 瑞安市| 申扎县| 抚州市| 茶陵县| 安康市| 轮台县| 新巴尔虎右旗| 扎鲁特旗| 桓台县| 绥中县| 鲁甸县| 青神县| 呈贡县| 东至县| 观塘区| 商水县| 鄂伦春自治旗| 鸡东县| 建瓯市| 旬阳县| 邳州市| 隆化县| 五家渠市| 来凤县| 富锦市| 祁门县| 萨嘎县| 古交市| 奉新县| 吴川市| 水富县| 荔浦县| 德兴市| 依安县| 称多县| 张家川| 改则县|