美文网首页
pickle模块

pickle模块

作者: 圣堂刺客_x | 来源:发表于2019-10-28 10:34 被阅读0次
  1. 用于序列化的两个模块
json:用于字符串和Python数据类型间进行转换
pickle: 用于python特有的类型和python的数据类型间进行转换
json提供四个功能:dumps,dump,loads,load
pickle提供四个功能:dumps,dump,loads,load
  1. pickle可以存储什么类型的数据呢?
    (1) 所有python支持的原生类型:布尔值,整数,浮点数,复数,字符串,字节,None。
    (2) 由任何原生类型组成的列表,元组,字典和集合。
    (3) 函数,类,类的实例
  2. pickle模块中常用的方法有:
    (1)dump() 方法,用于将数据进行序列化并写入文件,当dump() 方法的protocol 参数为True 时可以实现压缩的效果

语法

pickle.dump(obj, file, protocol=None,)

参数
obj表示将要封装的对象
file表示obj要写入的文件对象,file必须以二进制可写模式打开,即“wb”

ex. 使用 pickle模块写入二进制文件

#导入模块
import pickle
#准备要序列化的数据
lst = [[1,2,3],[4,5,6],[7.8,9]]
tu = (-5,10,8)
coll = {4,5,6}
dic = {'a':'apple','b':'banana','g':'grape','o':'orange'}

#以写模式打开二进制文件
f = open('StaticVarDataFile','wb')
try:
    pickle.dump(lst,f)  #写入列表
    pickle.dump(tu,f)   #写入元组
    pickle.dump(coll,f) #写入集合
    pickle.dump(dic,f)  #写入字典
except:
    print('写文件异常')
finally:
    f.close()

(2) load() 用于读取二进制文件内容并进行反序列化,还原为原来的信息

语法

pickle.load(file,*,fix_imports=True, encoding="ASCII", errors="strict")

参数
file必须以二进制可读模式打开,即“rb”,其他都为可选参数

ex. 使用 pickle 模块读取上例写入二进制文件的内容

#导入模块
import pickle
#打开二进制文件
f = open('StaticVarDataFile','rb')
n1 = pickle.load(f)
n2 = pickle.load(f)
n3 = pickle.load(f)
n4 = pickle.load(f)

print(n1)                 #读取文件中数据
print(n2)                 #读取文件中数据
print(n3)                 #读取文件中数据
print(n4)                 #读取文件中数据

运行结果

(3) dumps(obj) 方法,以字节对象形式返回封装的对象,不需要写入文件中

import pickle
print(pickle.dumps([1,2,3]))
#b'\x80\x03]q\x00(K\x01K\x02K\x03e.'

(4) loads(bytes_object): 从字节对象中读取被封装的对象,并返回

import pickle
str_byte = b'\x80\x03]q\x00(K\x01K\x02K\x03e.'
print(pickle.loads(str_byte))
#[1,2,3]

相关文章

  • python语法入门四

    文件 os + time模块 pickle模块 异常 文件 os + time模块 pickle模块 异常

  • Lesson 035 —— pickle 模块

    Lesson 035 —— pickle 模块 关于 pickle 模块的一些方法介绍。pickle是Python...

  • 文件操作

    打开、读/写文件 pickle python的pickle模块实现了基本的数据序列和反序列化。通过pickle模块...

  • Python3 pickle模块的使用详解

    pickle 模块 序列化 pickle模块特点 1、只能在python中使用,只支持python的基本数据类型。...

  • Python保存工作空间的数据(pickle your data

    [toc] 通用方法 pickle python的pickle模块实现了基本的数据序列和反序列化。通过pickle...

  • pickle模块

    经常遇到在Python程序运行中得到了一些字符串、列表、字典等数据,想要长久的保存下来,方便以后使用,而不是简单的...

  • pickle模块

    用于序列化的两个模块 pickle可以存储什么类型的数据呢?(1) 所有python支持的原生类型:布尔值,整数,...

  • pickle 的dump和load的用法(2019-01-09)

    #使用pickle模块将数据对象保存到文件 import pickle data1 = {'a': [1, 2.0...

  • python中持久化pickle模块的简单使用

    导入pickle模块,该模块可提供简单的持久化功能,将对象以文件的形式储存在本地,可通过pickle.dump()...

  • 2018-02-07

    python pickle模块:python变量及对象的序列化 1、pickle.dump 将python变量...

网友评论

      本文标题:pickle模块

      本文链接:https://www.haomeiwen.com/subject/oqbvvctx.html