前提:
从文件中读取字符串容易,但是读取出数值比较不容易。如果使用read或者readlines方法都会返回一个字符串,可以使用int、float等方法从字符串中强制转换为整型或者浮点型数值。
若保存的文件像列表、字典、集合甚至类的实例这些更加复杂的数据类型时,就会有点难度。可以将这些数据类型转换为字符串再写入到文件中,但是反过来如果想从文本文件中恢复数据对象,即把一个字符串恢复成列表、字典、集合、类的实例等,会很困难。此时python提供一个标准的pickle模块,即将列表、字典等这类复杂的数据类型转换为二进制文件。
picking:将python对象转换为二进制存放(存放)
unpicking:将二进制转换为对象的过程(读取)
pickle模块(泡菜):将列表、字典这类复杂的数据类型转换为二进制文件。
举例:将一个列表保存起来再读取出来
>>> my_list=[123,3.14,'小甲鱼',[666]]#将列表保存为文件
>>> pickle_file=open('my_list.pkl','wb')#写入文件(创建),以二进制的模式打开
>>> pickle.dump(my_list,pickle_file)#使用模块的dump方法将列表写入文件中
>>> pickle_file.close()#关闭文件
>>>
>>> pickle_file=open('my_list.pkl','rb')#以二进制的形式打开文件
>>> my_list2=pickle.load(pickle_file)#使用模块的load方法,转换为列表
>>> print(my_list2)
[123, 3.14, '小甲鱼', [666]]