python pickle/cPickle模块
来源:互联网 发布:js test match 编辑:程序博客网 时间:2024/05/16 07:12
序列化(picking): 把变量从内存中变成可存储或传输的过程称为序列化,序列化之后,就可以把序列化的对象写入磁盘,或者传输给其他设备;
所有Python支持的 原生类型 : 布尔, 整数, 浮点数, 复数, 字符串, bytes(字节串)对象, 字节数组, 以及 None.
–由任何原生类型组成的列表,元组,字典
–由任何原生类型组成的列表,元组,字典和集合组成的列表,元组,字典和集合(可以一直嵌套下去,直至Python支持的最大递归层数).
–函数,类,和类的实例(带警告)。
反序列化(unpickling):相应的,把变量的内容从序列化的对象重新读到内存里的过程称为反序列化;
使用的时候,一般先尝试导入cPickle,如果失败,再导入pickle模块。
try: import cPickle as pickleexcept ImportError: import pickle
所有Python支持的 原生类型 : 布尔, 整数, 浮点数, 复数, 字符串, bytes(字节串)对象, 字节数组, 以及 None.
–由任何原生类型组成的列表,元组,字典
–由任何原生类型组成的列表,元组,字典和集合组成的列表,元组,字典和集合(可以一直嵌套下去,直至Python支持的最大递归层数).
–函数,类,和类的实例(带警告)。
pickle模块中主要的函数是dump()/load()和dumps()/loads()。
dump()实现把一个对象序列化之后以特定的格式保存到指定的文件中,dumps()实现把一个对象转化为序列化之后的str数据,然后可以对这个str数据进行其他处理或者把这个str数据写入文件;
load()实现把一个已经序列化并写入文本中的对象反序列化成内存中的对象,loads()实现把一个反序列化的str对象反序列化成内存中的对象。
dir = {bird:0,pig:1,cat:2,dog:3}f = open('animal.pkl','wb')pickle.dump(dir,f)f.close
在程序所在目录下生成animal.pkl文件,保存的是dir内存对象的序列化后的信息。
f = open('animal.pkl', 'rb')d = pickle.load(f)f.close()print d
load()返回从加载的文件中反序列化出的对象,d中的内容就是dir中的内容。
dumps()/loads()用法:
dir = {'bird':0,'pig':1,'cat':2,'dog':3}ds = pickle.dumps(dir)print dsls = pickle.loads(ds)print ls
ds中的内容就是dir序列化后的对象,ls中的内容就是ds反序列化之后的对象,ls跟dir保持一致。
dump()和load()函数的参数也可以合并写为pickle.dump(dir,open('animal.pkl','wb'))和pickle.load(open('animal.pkl', 'rb'))
阅读全文
0 0
- python pickle, cPickle 模块
- python pickle/cPickle模块
- python笔记:pickle、cPickle模块
- python核心模块pickle和cPickle
- python核心模块pickle和cPickle
- python核心模块pickle和cPickle
- python核心模块之pickle和cPickle
- python持久化模块:pickle和Cpickle
- pickle, cPickle 模块:序列化 Python 对象
- pickle及cPickle模块
- python: pickle cpickle
- python核心模块之pickle和cPickle讲解
- python 核心模块之pickle和cPickle讲解
- python核心模块之pickle和cPickle讲解
- python核心模块之pickle和cPickle讲解
- python模块之pickle模块(这是python3中为import pickle,python2中为import cPickle as pickle)
- [Python Serialize] pickle, cPickle, marshal
- python-pickle/cPickle/glob/tarfile
- 使用Xcode进行iOS设备无线调试
- 物体的移动与旋转
- docker入门简介
- 指令系统
- C++ 重写重载重定义区别
- python pickle/cPickle模块
- An error has occurred,See error log for more details 错误解决办法
- 对ListView的多条目的一些实现功能
- 仿函数(函数对象)
- EL简介
- navicat连接远程linux数据库
- Erlang/OTP 构建 Application
- SpringBoot 基于jjwt快速实现token授权
- 文件上传