对象存储/编码/解码
有時候,我們需要將某些字符串、列表、字典、元組等數(shù)據(jù)?久保存,現(xiàn)在,這個時候,就需要使?
永久性存儲的模塊?件pickle。pickle模塊可以將對象轉(zhuǎn)換為?種可以存儲或讀取的格式。
pickle:該模塊實(shí)現(xiàn)了數(shù)據(jù)的序列化與反序列化,通過pickle的序列化操作,可以實(shí)現(xiàn)將程序中的對象
保存到?件信息中,實(shí)現(xiàn)永久性存儲。通過pickle的反序列化操作,可以實(shí)現(xiàn)將程序中的永久性存儲的對象解析出來
在使用文件讀取完后一定要把文件關(guān)閉了,如:f1.close()
# 存儲list #導(dǎo)入 pickle import pickle list1=[12,2,3] f1=open('list.txt','wb') # 將列表存入到文件中 # 語法格式: # pickle.dump(存儲的數(shù)據(jù),目標(biāo)文件) pickle.dump(list1,f1) f1.close() # 建議:存儲數(shù)據(jù)時,盡量不要使用系統(tǒng)能夠打開的后綴名, # 優(yōu)點(diǎn):防止用戶隨意打開,更改數(shù)據(jù) # 從文件中讀取列表 # 語法格式: # pickle.load(存儲的數(shù)據(jù),目標(biāo)文件) f2=open("list.txt","rb") list2=pickle.load(f2) print(list2)
簡寫模式
好處:可以省略關(guān)閉文件這個操作,減少代碼
#從文件中讀取對象 with open("list.txt","rb") as f1:pickle.load(f1) #將對象寫如文件中 with open("list.txt","wb") as f2:pickle.dump(list1,f2)?
編碼/解碼
編碼:文件.encode(編碼格式)
解碼:文件.decode(編碼格式)
常見編碼格式
GB2312 是中國規(guī)定的漢字編碼,也可以說是簡體中文的字符集編碼
GBK? ? ? 是 GB2312的擴(kuò)展 ,除了兼容GB2312外,它還能顯示繁體中文,還有日文的假名
cp936 ? 中文本地系統(tǒng)是Windows中的cmd,默認(rèn)codepage是CP936,cp936就是指系統(tǒng)里第936號編碼格式,即GB2312的編碼。
?(當(dāng)然有其它編碼格式:cp950 繁體中文、cp932 日語、cp1250 中歐語言。。。)
Unicode?是國際組織制定的可以容納世界上所有文字和符號的字符編碼方案。UTF-8、UTF-16、UTF-32都是將數(shù)字轉(zhuǎn)換到程序數(shù)據(jù)的編碼方案。
UTF-8?(8-bit Unicode Transformation Format)是最流行的一種對 Unicode 進(jìn)行傳播和存儲的編碼方式。它用不同的 bytes 來表示每一個代碼點(diǎn)。
ASCII 字符每個只需要用一個 byte ,與 ASCII 的編碼是一樣的。所以說 ASCII 是 UTF-8 的一個子集。
#編碼 with open("file2.txt","wb") as f1:str1="123132djijdi外交誒"enstr=str1.encode("utf-8")print(enstr)f1.write(enstr) #解碼 with open("file2.txt","rb") as f2:str2=f2.read()destr=str2.decode("utf-8")print(destr)?
轉(zhuǎn)載于:https://www.cnblogs.com/dyd520/p/11252565.html
總結(jié)
以上是生活随笔為你收集整理的对象存储/编码/解码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: IIS6.0打开ASP文件,出现500错
- 下一篇: MATLAB中设置figure的边框