如果直接用文本文件或二进制文件格式存储Python中的各种对象,通常需要进行繁琐的转换。可以使用Python标准模块Pickle处理文件中对象的读写。
>>> x=[1,2,'abc']
>>> y={'name':'John', 'age':25}
>>> myfile=open(r'F:\src\Python 3 Course\objdata.bin','wb')
>>> import pickle
>>> pickle.dump(x,myfile)
>>> pickle.dump(y,myfile)
>>> myfile.close()
>>> myfile=open(r'F:\src\Python 3 Course\objdata.bin','rb')
>>> myfile.read()
b'\x80\x03]q\x00(K\x01K\x02X\x03\x00\x00\x00abcq\x01e.\x80\x03}q\x00(X\x04\x00\x00\x00nameq\x01X\x04\x00\x00\x00Johnq\x0
2X\x03\x00\x00\x00ageq\x03K\x19u.'
>>> myfile.seek(0)
0
>>> x=pickle.load(myfile)
>>> x
[1, 2, 'abc']
>>> y=pickle.load(myfile)
>>> y
{'name': 'John', 'age': 25}
用文件来存储程序中的各种对象称为对象的序列化。序列化操作可以保存程序运行中的各种数据,以便恢复运行状态