【python模块学习】pickle库学习实录

pickle模块简介

    pickle模块可以将内存中的Python对象转化成序列化的字节流,这是一种可以写入任何类似文件对象的字节串。pickle模块也可以根据序列化的字节流重新构建原来内存中的对象:转换成原来那个对象。   
                                                                                                                        ——Mark Lutz

pickle模块可以有效地解决构建数据库的问题,下面介绍pickle模块的主要方法(持续更)

pickle模块常用方法

pickle.dump(obj, file, protocol=None, *, fix_imports=True):
     此方法可以将一个对象转换为序列化的字节流,并写入file文件中。第一个参数是写入对象,第二个参数是写入文件夹,之后三个对象控制与python2兼容的问题,在此不做解释。
方法实例:
import pickle           #引入pickle模块
obj = '小明'
with open('D://pickle.pkl','wb') as f:  #以二进制写入模式打开文件
    pickle.dump(obj,f)  
    f.close()

注意:这里打开文件的方式一定是二进制模式,不然会报错,原因与write()的参数有关,具体不知,以后分析了源码后再来解决。这里要用二进制写入模式打开

这个方法最后的运行的结果是在D盘创建了一个pickle.pkl文件,并将'小明'这个字符串以字节流的形式存了进去。

pickle.load(file,*, fix_imports=True, encoding="ASCII", errors="strict"):
        此方法可以将之前序列化的字节流转换为原来的对象,及dump方法的逆过程。第一个参数是字节流存储的文件,后面几个参数暂时没学习到

方法实例:

import pickle           #引入pickle模块
obj = '小明'
with open('D://pickle.pkl','wb') as f:  #以二进制写入模式打开文件
    pickle.dump(obj,f)
    f.close()

with open('D://pickle.pkl','rb') as f:  #以二进制阅读模式打开文件
    text = pickle.load(f)
    print(text)
>>
小明

ps:同样要以二进制模式打开,不然会报错。这里的模式选用二进制读取模式



pickle.dumps(obj, protocol=None, *, fix_imports=True):

        此方法将一个对象转化为序列化的字节流,与dump类似,只是不写入文件中去。参数意义与dump方法相同
方法实例:

import pickle
obj = 'xiaoming'
text = pickle.dumps(obj)
print(text)

>>
b'\x80\x03X\x08\x00\x00\x00xiaomingq\x00.'

pickle.loads(bytes_object, *, fix_imports=True, encoding="ASCII", errors="strict"):
        此方法将一个字节流转为原对象,是dumps方法的逆过程。第一个参数代表字节流对象,后面的参数暂时没学到。
方法实例:
import pickle
obj = 'xiaoming'
text = pickle.dumps(obj)
print(text)
text=(pickle.loads(text))
print(text)

>>
b'\x80\x03X\x08\x00\x00\x00xiaomingq\x00.'
xiaoming
【未完待续】
  

猜你喜欢

转载自blog.csdn.net/qq_35621436/article/details/79823287