模塊pickle(皮考)python
dumps(當破死)序列化. 把對象轉化成bytes數據庫
loads(樓死) 反序列化. 吧bytes轉化成對象json
dic = {"jay": "周杰倫", "jj": "大陽哥"} bs = pickle.dumps(dic) #序列化 print(bs) d = pickle.loads(bs)#反序列化 print(d)
dump(當破)序列化,吧對象轉化成bytes 而且寫入文件後端
load(樓的) 反序列化,吧文件中的bytes讀取,轉化成對象session
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對象
小型數據庫. 操縱的是文件類型的字典. 像操做字典同樣操做文件blog
shelve.open(文件, writeback=True)(Ruai特百科)操做的東西寫回原來的文件ip
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() 字典轉換成字符串ci
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吧字典轉化成字符串 而後手工在後面加入一個\n 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)+'\n' 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'))