存储:永久性保存对象
有时候,我们需要将某些字符串、列表、字典、元组等数据⻓久保存,现在,这个时候,就需要使⽤
永久性存储的模块⽂件pickle。pickle模块可以将对象转换为⼀种可以存储或读取的格式。
pickle:该模块实现了数据的序列化与反序列化,通过pickle的序列化操作,可以实现将程序中的对象
保存到⽂件信息中,实现永久性存储。通过pickle的反序列化操作,可以实现将程序中的永久性存储的对象解析出来
在使用文件读取完后一定要把文件关闭了,如:f1.close()
# 存储list #导入 pickle import pickle list1=[12,2,3] f1=open('list.txt','wb') # 将列表存入到文件中 # 语法格式: # pickle.dump(存储的数据,目标文件) pickle.dump(list1,f1) f1.close() # 建议:存储数据时,尽量不要使用系统能够打开的后缀名, # 优点:防止用户随意打开,更改数据 # 从文件中读取列表 # 语法格式: # pickle.load(存储的数据,目标文件) f2=open("list.txt","rb") list2=pickle.load(f2) print(list2)
简写模式
好处:可以省略关闭文件这个操作,减少代码
#从文件中读取对象 with open("list.txt","rb") as f1: pickle.load(f1) #将对象写如文件中 with open("list.txt","wb") as f2: pickle.dump(list1,f2)
编码/解码
编码:文件.encode(编码格式)
解码:文件.decode(编码格式)
常见编码格式
GB2312 是中国规定的汉字编码,也可以说是简体中文的字符集编码
GBK 是 GB2312的扩展 ,除了兼容GB2312外,它还能显示繁体中文,还有日文的假名
cp936 中文本地系统是Windows中的cmd,默认codepage是CP936,cp936就是指系统里第936号编码格式,即GB2312的编码。
(当然有其它编码格式:cp950 繁体中文、cp932 日语、cp1250 中欧语言。。。)
Unicode 是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案。UTF-8、UTF-16、UTF-32都是将数字转换到程序数据的编码方案。
UTF-8 (8-bit Unicode Transformation Format)是最流行的一种对 Unicode 进行传播和存储的编码方式。它用不同的 bytes 来表示每一个代码点。
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)