模块pickle(皮考)
dumps(当破死)序列化. 把对象转化成bytes
loads(楼死) 反序列化. 吧bytes转化成对象
dic = {"jay": "周杰伦", "jj": "大阳哥"} bs = pickle.dumps(dic) #序列化 print(bs) d = pickle.loads(bs)#反序列化 print(d)
dump(当破)序列化,吧对象转化成bytes 并且写入文件
load(楼的) 反序列化,吧文件中的bytes读取,转化成对象
class Cat: def __init__(self, name, age): self.name = name self.age = age def catchMouse(self): print(self.name, self.age, "抓老鼠") lst = [Cat("猫1", 10), Cat("猫2", 9), Cat("猫3", 9), Cat("猫4", 9), Cat("猫5", 9)] f = open("pickle-test", mode="wb") pickle.dump(lst, f) # for el in lst: # pickle.dump(el, f) f.flush() f.close() f = open("pickle-test", mode="rb") while 1: try: c1 = pickle.load(f) c1.catchMouse() except EOFError: break
shilve(晒要付) 用open
小型数据库. 操纵的是文件类型的字典. 像操作字典一样操作文件
shelve.open(文件, writeback=True)(Ruai特百科)操作的东西写回原来的文件
import shelve f = shelve.open('大杰哥',writeback=True)#创建文件 f["jay"] = {'name': "周杰伦", 'age': 38, "hobby": "吃喝拉撒睡"}#像字典一样操作文件写入 f['jay']['name'] = '胡辣汤'#像字典一样修改 print(f['jay']['name']) print(f['jay']) f.close()#关闭哦
json(杰森)
前后端数据交互的通用的数据格式
dumps() 字典转换成字符串
loads() 吧字符转化成字典
import json #引入模块 dic = {'a':'哈哈哈','b':'嘻嘻嘻','c':'嘿嘿嘿'} s = json.dumps(dic)#如果你的key或者value超出了ascii范畴。 就会显示成uxxxxx #所以用一下写法: s1 = json.dumps(dic,ensure_ascii=False)#干掉ascii码 print(repr(s1),type(s1))#字符串,可以用repr()来看 dic1 = json.loads(s)#把字符串解析成 字典 print(dic1,type(dic1))
写入文件,
''' 写入的时候 1. 循环 2. 用dumps吧字典转化成字符串 然后手工在后面加入一个 3. 写出 ''' import json f = open('wenjian_json',mode='w',encoding='UTF-8') lst = [{'a':"胡辣汤"},{'b':'滋滋冒油的大猪蹄子'},{'c':'盖浇饭'},{'d':'法国大蜗牛'}] for el in lst: s = json.dumps(el,ensure_ascii=False)+' ' f.write(s) f.flush() f.close() ''' 读取的时候 1. for line in f: 2. strip()去掉空格 3. loads()变成字典 ''' f = open('wenjian_json',mode='r',encoding='UTF-8') for line in f: line = line.strip() dic = json.loads(line) print(dic)
configparser (肯分哥怕色儿)
处理配置文件的
把配置文件作为一个大字典来处理就行了
写入
import configparser conf = configparser.ConfigParser() conf['DEFAULT'] = { 'session-time-out':30, 'user-alive':60, 'connect-alive':10 } conf['201-DB'] = { 'ip':'192.168.16.201', 'port':3306, 'name':'alex', 'password':'123' } conf['202-DB'] = { 'ip':'192.168.16.202', 'port':3306, 'name':'alex', 'password':'123' } conf['203-DB'] = { 'ip':'192.168.16.203', 'port':3306, 'name':'alex', 'password':'123' } f = open('db.ini',mode='w')#创建文件写进入 conf.write(f)# 就这么玩,把文件扔进去,写到这个文件里
增删改查:
conf = configparser.ConfigParser() conf.read('db.ini')#读取出来 #修改: conf['201-DB']['id'] = 'alex'#这只是内存上的改, conf.write(open('db.ini',mode='w'))#把在内存里的放入文件 #删除 del conf['201-DB']['id'] conf.write(open('db.ini',mode='w')) #新增 conf.set('201-DB','id','192.168.199') conf.write(open('db.ini',mode='w'))