10

对象持久化 扁平文件 pickle shelev 数据库 ORM

扁平文件 ——文本文件

with open(‘data.txt’,‘w’,encoding=‘utf8’) as f:
f.write(‘优品课堂\n’)
f.write(‘codeclassroom.com’)
“”"
scrose=[88,79,99,80]
#写入文件
def write_scrose():
with open(‘data_list.txt’,‘w’,encoding=‘utf8’)as f:
f.write(str(scrose))
print (‘文件写入完成’)
#读取文件
def read_scrose():
with open(‘data_list.txt’,‘r’,encoding=‘utf8’)as f:
lst = eval(f.read())
lst[0]=22
print (lst)
if name==‘main’:
read_scrose()

“”"
#提供模块,将python类型对象序列化字符串或者本地文件

pickle 这两个的作用是序列化成字符串

      # 中dumps:将对象序列化成字符串
     # 中loads,将字符串反序列化成字符串

import pickle
person={‘name’:‘Tom’,‘age’:20}
#方法1转换成字符串,将字符串存在文本里面,读取时,再还原
s=pickle.dumps(person)#将传来的对象序列化成字符串
print (s)
p=pickle.loads(s)#从字符串载入还原反序列化对象
print §

pickle中序列化对象到文件

          中dump(obj,file)
          中load(file)

pickle.dump(person,open(‘pickle_db’,‘wb’))#先序列化到文件
p=pickle.load(open(‘pickle_db’,‘rb’))#再反序列化
print §
缺陷:文件中所有的都需要反序列化,很复杂
#shelve 将多个对象存储再一个文件中,和字典表类似,一一对应,方便提取

shelve .open(‘dbfile’)

shelve.close()

db[‘key’]=obj

len(db)

del db[‘key’]

import shelve
scores=[99,87,90]
student={‘name’:‘Mike’,‘age’:20}
db=shelve.open(‘shelve_student’)
db[‘s’]=student
db[‘scores’]=scores
print (len(db))
temp_student=db[‘s’]
print (temp_student)
db[‘scores’]
#如果想删除某一项
del db[‘scores’]
print (len(db))
print (db[‘s’])
#先定义类的过程
import shelve
class Student:
def init(self,name,age):
self.name=name
self.age=age
def str(self):
return self.name
# return self.age

def write_shelve():
s=Student(‘Tom’,20)
db=shelve.open(‘shelve_student_db’)
db[‘s’]=s
db.close()

def read_shelve():
db=shelve.open(‘shelve_student_db’)
st=db[‘s’]
print (st)
print (st.name)
print (st.age)
db.close()

if name==‘main’:
read_shelve()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值