对象存储/编码/解码

存储:永久性保存对象

有时候,我们需要将某些字符串、列表、字典、元组等数据⻓久保存,现在,这个时候,就需要使⽤
永久性存储的模块⽂件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)
原文地址:https://www.cnblogs.com/dyd520/p/11252565.html