黄视频网站在线免费观看-黄视频网站在线看-黄视频网站在线观看-黄视频网站免费看-黄视频网站免费观看-黄视频网站免费

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁  >  技術(shù)干貨  > python pickle模塊

python pickle模塊

來源:千鋒教育
發(fā)布人:xqq
時(shí)間: 2023-11-07 20:13:35 1699359215

持久性就是指保持對(duì)象,甚至在多次執(zhí)行同一程序之間也保持對(duì)象。通過本文,您會(huì)對(duì)Python對(duì)象的各種持久性機(jī)制(從關(guān)系數(shù)據(jù)庫(kù)到Python的pickle以及其它機(jī)制)有一個(gè)總體認(rèn)識(shí)。另外,還會(huì)讓您更深一步地了解Python的對(duì)象序列化能力。

什么是持久性?

持久性的基本思想很簡(jiǎn)單。假定有一個(gè)Python程序,它可能是一個(gè)管理日常待辦事項(xiàng)的程序,您希望在多次執(zhí)行這個(gè)程序之間可以保存應(yīng)用程序?qū)ο?待辦事項(xiàng))。換句話說,您希望將對(duì)象存儲(chǔ)在磁盤上,便于以后檢索。這就是持久性。要達(dá)到這個(gè)目的,有幾種方法,每一種方法都有其優(yōu)缺點(diǎn)。

例如,可以將對(duì)象數(shù)據(jù)存儲(chǔ)在某種格式的文本文件中,譬如CSV文件。或者可以用關(guān)系數(shù)據(jù)庫(kù),譬如Gadfly、MySQL、PostgreSQL或者DB2。這些文件格式和數(shù)據(jù)庫(kù)都非常優(yōu)秀,對(duì)于所有這些存儲(chǔ)機(jī)制,Python都有健壯的接口。

這些存儲(chǔ)機(jī)制都有一個(gè)共同點(diǎn):存儲(chǔ)的數(shù)據(jù)是獨(dú)立于對(duì)這些數(shù)據(jù)進(jìn)行操作的對(duì)象和程序。這樣做的好處是,數(shù)據(jù)可以作為共享的資源,供其它應(yīng)用程序使用。缺點(diǎn)是,用這種方式,可以允許其它程序訪問對(duì)象的數(shù)據(jù),這違背了面向?qū)ο蟮姆庋b性原則—即對(duì)象的數(shù)據(jù)只能通過這個(gè)對(duì)象自身的公共(public)接口來訪問。

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

對(duì)象持久性

如果希望透明地存儲(chǔ)Python對(duì)象,而不丟失其身份和類型等信息,則需要某種形式的對(duì)象序列化:它是一個(gè)將任意復(fù)雜的對(duì)象轉(zhuǎn)成對(duì)象的文本或二進(jìn)制表示的過程。同樣,必須能夠?qū)?duì)象經(jīng)過序列化后的形式恢復(fù)到原有的對(duì)象。在Python中,這種序列化過程稱為pickle,可以將對(duì)象pickle成字符串、磁盤上的文件或者任何類似于文件的對(duì)象,也可以將這些字符串、文件或任何類似于文件的對(duì)象unpickle成原來的對(duì)象。我們將在本文后面詳細(xì)討論pickle。

假定您喜歡將任何事物都保存成對(duì)象,而且希望避免將對(duì)象轉(zhuǎn)換成某種基于非對(duì)象存儲(chǔ)的開銷;那么pickle文件可以提供這些好處,但有時(shí)可能需要比這種簡(jiǎn)單的pickle文件更健壯以及更具有可伸縮性的事物。例如,只用pickle不能解決命名和查找pickle文件這樣的問題,另外,它也不能支持并發(fā)地訪問持久性對(duì)象。如果需要這些方面的功能,則要求助類似于ZODB(針對(duì)Python的Z對(duì)象數(shù)據(jù)庫(kù))這類數(shù)據(jù)庫(kù)。ZODB是一個(gè)健壯的、多用戶的和面向?qū)ο蟮臄?shù)據(jù)庫(kù)系統(tǒng),它能夠存儲(chǔ)和管理任意復(fù)雜的Python對(duì)象,并支持事務(wù)操作和并發(fā)控制。(請(qǐng)參閱參考資料,以下載ZODB。)令人足夠感興趣的是,甚至ZODB也依靠Python的本機(jī)序列化能力,而且要有效地使用ZODB,必須充分了解pickle。

另一種令人感興趣的解決持久性問題的方法是Prevayler,它最初是用Java實(shí)現(xiàn)的(有關(guān)Prevaylor方面的developerWorks文章,請(qǐng)參閱參考資料)。最近,一群Python程序員將Prevayler移植到了Python上,另起名為PyPerSyst,由SourceForge托管(有關(guān)至PyPerSyst項(xiàng)目的鏈接,請(qǐng)參閱參考資料)。Prevayler/PyPerSyst概念也是建立在Java和Python語言的本機(jī)序列化能力之上。PyPerSyst將整個(gè)對(duì)象系統(tǒng)保存在內(nèi)存中,并通過不時(shí)地將系統(tǒng)快照pickle到磁盤以及維護(hù)一個(gè)命令日志(通過此日志可以重新應(yīng)用最新的快照)來提供災(zāi)難恢復(fù)。所以,盡管使用PyPerSyst的應(yīng)用程序受到可用內(nèi)存的限制,但好處是本機(jī)對(duì)象系統(tǒng)可以完全裝入到內(nèi)存中,因而速度極快,而且實(shí)現(xiàn)起來要比如ZODB這樣的數(shù)據(jù)庫(kù)簡(jiǎn)單,ZODB允許對(duì)象的數(shù)目比同時(shí)在能內(nèi)存中所保持的對(duì)象要多。

既然我們已經(jīng)簡(jiǎn)要討論了存儲(chǔ)持久對(duì)象的各種方法,那么現(xiàn)在該詳細(xì)探討pickle過程了。雖然我們主要感興趣的是探索以各種方式來保存Python對(duì)象,而不必將其轉(zhuǎn)換成某種其它格式,但我們?nèi)匀贿€有一些需要關(guān)注的地方,譬如:如何有效地pickle和unpickle簡(jiǎn)單對(duì)象以及復(fù)雜對(duì)象,包括定制類的實(shí)例;如何維護(hù)對(duì)象的引用,包括循環(huán)引用和遞歸引用;以及如何處理類定義發(fā)生的變化,從而使用以前經(jīng)過pickle的實(shí)例時(shí)不會(huì)發(fā)生問題。我們將在隨后關(guān)于Python的pickle能力探討中涉及所有這些問題。

一些經(jīng)過pickle的Python

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

>>>importcPickleaspickle

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

缺省情況下,dumps()和dump()使用可打印的ASCII表示來創(chuàng)建pickle。兩者都有一個(gè)final參數(shù)(可選),如果為True,則該參數(shù)指定用更快以及更小的二進(jìn)制表示來創(chuàng)建pickle。loads()和load()函數(shù)自動(dòng)檢測(cè)pickle是二進(jìn)制格式還是文本格式。

以上內(nèi)容為大家介紹了pythonpickle模塊,希望對(duì)大家有所幫助,如果想要了解更多Python相關(guān)知識(shí),請(qǐng)關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。

聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請(qǐng)您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
一本高清在线| 精品国产一区二区三区免费 | 国产一区二区精品久| 中文字幕一区二区三区精彩视频| 国产高清在线精品一区a| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 成人a大片在线观看| 国产亚洲免费观看| 久久精品欧美一区二区| 一 级 黄 中国色 片| 精品国产一级毛片| 亚洲 激情| 亚欧成人乱码一区二区| 国产高清在线精品一区二区| 美女免费精品视频在线观看| 国产成人啪精品视频免费软件| 精品在线观看一区| 国产激情一区二区三区| 日韩在线观看视频网站| 四虎影视久久久免费| 精品视频一区二区| 亚洲女初尝黑人巨高清在线观看| 欧美一级视| 国产成人啪精品| 精品国产一区二区三区精东影业| 黄视频网站在线观看| 九九精品在线| 欧美激情一区二区三区视频高清| 国产91素人搭讪系列天堂| 日韩免费在线| 国产91素人搭讪系列天堂| 青青青草影院| 亚飞与亚基在线观看| 尤物视频网站在线| 亚洲精品久久久中文字| 黄色短视屏| 沈樵在线观看福利| 国产成人精品一区二区视频| 成人影院久久久久久影院| 国产一区二区精品久久91| 一a一级片| 国产激情视频在线观看| 日韩免费在线| 999精品视频在线| 国产美女在线观看| 日韩一级黄色| 成人高清免费| 久久久久久久久综合影视网| 亚洲第一视频在线播放| 国产伦久视频免费观看 视频| 国产一区二区福利久久| 免费国产在线观看| 99色播| 亚洲女初尝黑人巨高清在线观看| 亚洲 欧美 成人日韩| 国产一区精品| 国产美女在线观看| 色综合久久天天综合观看| 国产一区二区精品久久91| 韩国三级香港三级日本三级| 91麻豆爱豆果冻天美星空| 欧美电影免费看大全| 黄视频网站免费观看| 尤物视频网站在线| 国产成a人片在线观看视频| 日韩中文字幕一区| 日韩一级黄色片| 国产精品12| 尤物视频网站在线观看| 99久久精品国产高清一区二区| 成人高清免费| 美女免费精品视频在线观看| 亚飞与亚基在线观看| 欧美爱色| 国产精品自拍亚洲| 欧美电影免费看大全| 欧美另类videosbestsex高清| 成人免费福利片在线观看| 国产视频一区二区在线播放| 久久国产一久久高清| 九九免费精品视频| 天天做人人爱夜夜爽2020| 国产成人精品综合久久久| 色综合久久手机在线| 青青久久国产成人免费网站| 韩国毛片免费| 国产一区二区精品| 亚洲女人国产香蕉久久精品| 香蕉视频久久| 精品国产一区二区三区免费 | 亚久久伊人精品青青草原2020| 日本特黄一级| 国产一区精品| 国产美女在线一区二区三区| 亚洲精品久久久中文字| 韩国三级视频网站| 成人免费观看男女羞羞视频| 青草国产在线观看| 深夜做爰性大片中文| 国产一区精品| 国产精品自拍亚洲| 国产91素人搭讪系列天堂| 亚洲wwwwww| 国产成人精品影视| 国产视频网站在线观看| 国产国语对白一级毛片| 韩国三级视频网站| 欧美大片一区| 一级毛片看真人在线视频| 色综合久久天天综线观看| 国产一区二区精品久久91| 久久精品道一区二区三区| 国产麻豆精品视频| 午夜久久网| 欧美一级视| 国产欧美精品| 日韩字幕在线| 精品久久久久久影院免费| 久久99爰这里有精品国产| 韩国三级视频网站| 精品视频免费在线| 国产麻豆精品免费视频| 久久国产一区二区| 超级乱淫伦动漫| 美女免费毛片| 精品国产一区二区三区免费 | 亚洲女人国产香蕉久久精品| 久久成人综合网| 久久久久久久男人的天堂| 欧美日本免费| 欧美国产日韩一区二区三区| 日韩专区亚洲综合久久| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 久久精品免视看国产明星 | 一级毛片看真人在线视频| 可以免费在线看黄的网站| 日本免费乱人伦在线观看| 免费的黄视频| 九九久久99| 九九干| 久久久成人网| 成人免费观看男女羞羞视频| 欧美1区2区3区| 日本在线播放一区| 欧美激情一区二区三区视频高清| 99色视频在线| 欧美国产日韩精品| 国产视频一区二区在线播放| 日韩在线观看视频网站| 国产成a人片在线观看视频| 日本特黄一级| 亚洲爆爽| 国产精品1024永久免费视频| 九九精品久久久久久久久| 精品视频一区二区| 成人高清视频在线观看| 国产一区二区精品久| 91麻豆爱豆果冻天美星空| 黄色免费三级| 天天做人人爱夜夜爽2020| 韩国三级一区| 亚洲www美色| 国产精品自拍亚洲| 午夜欧美成人久久久久久| 日本特黄一级| 香蕉视频久久| 九九久久99| 欧美a级成人淫片免费看| 亚洲女初尝黑人巨高清在线观看| 欧美国产日韩久久久| 韩国三级视频网站| 欧美1区2区3区| 色综合久久天天综线观看| 国产一区精品| 国产亚洲免费观看| 午夜激情视频在线播放| 亚洲精品永久一区| 999精品在线| 成人免费观看男女羞羞视频| 99久久精品费精品国产一区二区| 午夜欧美成人香蕉剧场| 日韩一级黄色大片| 精品视频一区二区三区| 成人a大片在线观看| 久久久久久久免费视频| 黄视频网站在线免费观看| 久久精品店| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 日韩avdvd| 黄视频网站在线免费观看| 一级毛片视频免费| 日韩男人天堂| 久草免费资源| 国产伦久视频免费观看视频| 成人影视在线播放| 久久精品大片| 国产91精品一区| 久久精品成人一区二区三区| 四虎久久影院| 人人干人人插|