模块 json & pickle
把str/int字典写入文件
f=open("user_acc.txt","w") info={ 'alben':'123', 'nichole':'321' } f.write(str(info))
读取字典文件:
按照常规读取方法编写脚本——
with open('user_acc.txt') as f: data=f.read() for I in data: print (i)
这时候,python是一个字符一个字符的读取的,读取的内容完全不是字典格式的。
原因:
因为存储在磁盘上的数据是str格式的,但是读取文件的时候是通过2进制的格式存放在内存中的。
序列化:
2进制到字符串
反序列化:
字符串到2进制
通过pickle实现序列化与反序列化——
把字典格式以二进制的格式写入文件:
通过pickle模块
import pickle f=open("user_acc.txt","wb") info={ 'alben':'123', 'nichole':'321' } f.write(pickle.dumps(info))
这时候user_acc.txt直接打开显示的不是人为直观理解的格式
读取该文件:
import pickle with open('user_acc.txt','rb')as file: data=pickle.loads(file.read()) print(data)
使用模块json:
直接黏贴代码——(有细微区别,json直接存str,所以写入的文件是人为可以直接理解的)
JSON 所有语言通用,pickle是Python独有的,并且pickle不仅仅可以序列化基本数据类型(dict,list,tuple),它支持更多数据格式,包括函数!
写入——
import json f=open("user_acc.txt","w") info={ 'alben':'123', 'nichole':'321' } f.write(json.dumps(info))
读取——
import json with open('user_acc.txt','r') as file: data=json.loads(file.read()) print(data)