一、对象持久化
对象持久化:如果要将当前在内存中计算的数据结果或者状态永久存储起,就要用到对象的持久化。
文件的扁平化
eval() 函数用来执行一个字符串表达式,并返回表达式的值。
scores=[33,88,99]
def write_data():
with open('data.txt','w',encoding='utf8') as f:
f.write(str(scores))
print('写入文件')
def read_data():
with open('data.txt','r',encoding='utf8') as f:
lst=eval(f.read())
print(lst)
write_data()
read_data()
pickele方法
import pickle
person = {'name':'Tom','age':20}
s=pickle.dumps(person) #序列化对象成二进制写入 data.db文件中
print(s)
str=pickle.loads(s) #从字符串还原序列化对象
print(str)
运行结果:
b'\x80\x03}q\x00(X\x04\x00\x00\x00nameq\x01X\x03\x00\x00\x00Tomq\x02X\x03\x00\x00\x00ageq\x03K\x14u.'
{'name': 'Tom', 'age': 20}
Process finished with exit code 0
import shelve
scores=[1,2,3]
student={'name':'Tom','age':20}
db=shelve.open('data_s') #创建数据库文件
db['s']=scores #往数据库里赋值
db['student']=student
str1=db['s'] #读取
str2=db['student']
print(str1,str2)
运行结果:
[1, 2, 3] {'name': 'Tom', 'age': 20}
Process finished with exit code 0