python 保存文件 吃内存_孤荷凌寒自学python第三十七天python的文件与内存变量之间的序列化与反序列化...
孤荷凌寒自學python第三十七天python的文件與內存變量之間的序列化與反序列化
(完整學習過程屏幕記錄視頻地址在文末,手寫筆記在文末)
一、什么是序列化與反序列化
序列化是指將內存中的數據進行指定規(guī)則的格式梳理,使之方便按一定格式保存到文件中。我的理解就是數據在文件中的保存的結構。
反序列化是指將磁盤中文件的保存的結構讀取出來,然后轉換為內存中的數據,并且可以在屏幕上輸出為人可閱讀的格式內容。
二、pickle模塊
pickle模塊是Python?內置的序列化與反序列化類,保存到文件時,是將內存數據以二進制格式保存到文件中的。
使用pickle模塊前必須先聲明引用:
import pickle
因此讀取與保存時,open文件時,都是二進制讀取與寫入,模式輸入要選擇rb或wb
1
dump()?與?load()
dump操作是將內存中的數據保存到file對象中并寫入磁盤;
load操作是將file對象中的二進制數據讀出并轉換為dict。
pickle.dump(數據變量如字典,file對象)
字典對象=pickle.load(file對象)
2.dumps()與loads()
dumps操作是將內存中的數據序列化為byte字節(jié)碼對象;
loads操作是將byte字節(jié)碼對象轉換為dict。
測試:
import?pickle
strfile='1.txt'
f=open(strfile,'wb')
dictA=dict(姓名='孤荷凌寒',QQ='578652607')
pickle.dump(dictA,f)
f.close
f=open(strfile,'rb')
dictB=pickle.load(f)
print(dictB)
f.close
執(zhí)行結果:
{'姓名': '孤荷凌寒','QQ': '578652607'}
三、json模塊
json模塊是國際跨平臺通用的json標準的一種序列化和反序列化操作,更具有通用價值。
使用將也必須先聲明引用:
import? json
json的主要方法 也pickle的完全一樣,但json的讀取與寫入都是以純文本方式 進行的,因此open文件時,只能選擇的模式是:r?或?w
測試如下:
import?json
strfile='2.txt'
f=open(strfile,'w')
dictA=dict(姓名='孤荷凌寒',QQ='578652607')
json.dump(dictA,f)
f.close
f=open(strfile,'r')
dictB=json.load(f)
print(dictB)
f.close
運行結果:
{'姓名': '孤荷凌寒','QQ': '578652607'}
——————————
今天整理的學習筆記完成,最后例行說明下我的自學思路:
根據過去多年我自學各種編程語言的經歷,認為只有真正體驗式,解決實際問題式的學習才會有真正的效果,即讓學習實際發(fā)生。在2004年的時候我開始在一個鄉(xiāng)村小學自學電腦 并學習vb6編程語言,沒有學習同伴,也沒有高師在上,甚至電腦都是孤島(鄉(xiāng)村那時還沒有網絡),有的只是一本舊書,在痛苦的自學摸索中,我找到適應自己零基礎的學習方法:首先是每讀書的一小節(jié)就作相應的手寫筆記,第二步就是上機測試每一個筆記內容是否實現,其中會發(fā)現書中講的其實有出入或錯誤,第三步就是在上機測試之后,將筆記改為電子版,形成最終的修訂好的正確無誤的學習筆記。
通過反復嘗試錯誤,在那個沒有分享與交流的黑暗時期我摸黑學會了VB6,爾后接觸了其它語言,也曾聽過付費視頻課程,結果發(fā)現也許自己學歷果然太低,就算是零基礎的入門課程,其實也難以跟上進度,講師的教學多數出現對初學者的實際情況并不了解的情況,況且學習者的個體也存在差異呢?當然更可怕的是收費課程的價格往往是自己難以承受的。
于是我的所有編程學習都改為了自學,繼續(xù)自己的三步學習筆記法的學習之路。
當然自學的最大問題是會走那么多的彎路,沒有導師直接輸入式的教學來得直接,好在網絡給我們帶來無限搜索的機會,大家在網絡上的學習日志帶給我們共享交流的機會,而QQ群等交流平臺、網絡社區(qū)的成立,我們可以一起自學,互相批評交流,也可以獲得更有效,更自主的自學成果。
于是我以人生已過半的年齡,決定繼續(xù)我的編程自學之路,開始學習python,只希望與大家共同交流,一個人的獨行是可怕的,只有一群人的共同前進才是有希望的。
誠摯期待您的交流分享批評指點!歡迎聯系我加入從零開始的自學聯盟。
這個時代互聯網成為了一種基礎設施的存在,于是本來在孤獨學習之路上的我們變得不再孤獨,因為網絡就是一個新的客廳,我們時刻都可以進行沙龍活動。
非常樂意能與大家一起交流自己自學心得和發(fā)現,更希望大家能夠對我學習過程中的錯誤給予指點——是的,這樣我就能有許多免費的高師了——這也是分享時代,社區(qū)時代帶來的好福利,我相信大家會的,是吧!
根據完全共享的精神,開源互助的理念,我的個人自學錄制過程是全部按4K高清視頻錄制的,從手寫筆記到驗證手寫筆記的上機操作過程全程錄制,但因為4K高清文件太大均超過5G以上,所以無法上傳至網絡,如有需要可聯系我QQ578652607對傳,樂意分享。上傳分享到百度網盤的只是壓縮后的720P的視頻。
我的學習過程錄像百度盤地址分享如下:(清晰度:1280x720)
Bilibili:
喜馬拉雅語音筆記:
總結
以上是生活随笔為你收集整理的python 保存文件 吃内存_孤荷凌寒自学python第三十七天python的文件与内存变量之间的序列化与反序列化...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 聚类分析 - K-means - Pyt
- 下一篇: python xlrd使用_python