Python——pickle模块(永久存储)
一、作用
讲字典、列表、字符串等对象进行持久化,存储到磁盘上,方便以后使用。
二、dump()方法
pickle.dump(对象,文件,[使用协议])
作用:将要持久化的数据“对象”,保存到“文件中”
- obj:使用协议有3种,索引0位ASCII,1是旧时二进制,2是新式二进制,默认使用0。
二、dumps()方法
pickle.dumps(obj[, protocol])
作用:将obj对象序列化为string形式,而不是存入文件中
- obj:想要序列化的obj对象
- protocal:如果该项省略,则默认为0。如果为负值或HIGHEST_PROTOCOL,则使用最高的协议版本
四、load()方法
pickle.load(文件)
作用:从“文件”中,读取字符串,将他们反序列化转换为Python的数据对象。
五、loads()
作用:从string中读出序列化前的obj对象
六、实例
import pickle
class Person:
def __init__(self, n, a):
self.name = n
self.age = a
def show(self):
print(self.name + "_" + str(self.age))
aa = Person("JGood", 2)
aa.show()
f = open('data.pk1', 'wb') # 必须以二进制打开,否则有错
pickle.dump(aa, f, 0)
l1 = [1, 2, 3]
pickle.dump(l1, f, 0)
f.close() # 必须先关闭,否则pickle.load(f1)会出现EOFError: Ran out of input
f = open('data.pk1', 'rb')
bb = pickle.load(f)
bb.show()
l2 = pickle.load(f)
print(l2)
f.close()
Python——pickle模块(永久存储)的更多相关文章
- [转]python pickle模块
持久性就是指保持对象,甚至在多次执行同一程序之间也保持对象.通过本文,您会对 Python对象的各种持久性机制(从关系数据库到 Python 的 pickle以及其它机制)有一个总体认识.另外,还会让 ...
- Python pickle模块
python的pickle模块实现了基本的数据序列和反序列化.通过pickle模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去,永久存储:通过pickle模块的反序列化操作,我们能够从文件 ...
- python pickle 模块的使用
用于序列化的两个模块 json:用于字符串和Python数据类型间进行转换 pickle: 用于python特有的类型和python的数据类型间进行转换 json提供四个功能:dumps,dump,l ...
- python pickle模块的使用/将python数据对象序列化保存到文件中
# Python 使用pickle/cPickle模块进行数据的序列化 """Python序列化的概念很简单.内存里面有一个数据结构, 你希望将它保存下来,重用,或者发送 ...
- Python pickle 模块
转自:https://www.cnblogs.com/lincappu/p/8296078.html pickle可以存储的数据类型 所有python支持的原生类型:布尔值,整数,浮点数,复数,字符串 ...
- python -pickle模块、re模块学习
pickel模块 import pickle #pickle可以将任何数据类型序列化,json只能列表字典字符串数字等简单的数据类型,复杂的不可以 #但是pickle只能在python中使用,json ...
- python pickle模块的用法
pickle用于python特有的类型,和python的数据类型间进行转换,提供四个功能 dumps,dump,loads,load. pickle 的用法 #pickle.dumps 将数据通过特殊 ...
- python——pickle模块的详解
pickle模块详解 该pickle模块实现了用于序列化和反序列化Python对象结构的二进制协议. “Pickling”是将Python对象层次结构转换为字节流的过程, “unpickling”是反 ...
- python pickle 模块的使用详解
用于序列化的两个模块 json:用于字符串和Python数据类型间进行转换 pickle: 用于python特有的类型和python的数据类型间进行转换 json提供四个功能:dumps,dump,l ...
随机推荐
- 通过多线程处理提高Redis性能
Redis通常被称为单进程单线程模型. 这不是真的! Redis还运行多个后端线程来执行后端清理工作,例如清理脏数据和关闭文件描述符.在Redis中,主线程负责主要任务,包括但不限于:接收来自客户端的 ...
- js函数前面的+,!
+function(){}(); 这里的加号,也可以替换成!,~等其他一元操作符,其效果相当于: (function() { console.log("Foo!"); })(); ...
- Vue UI:Vue开发者必不可少的工具
译者按: Vue开发工具越来越好用了! 原文: Vue UI: A First Look 译者: Fundebug 本文采用意译,版权归原作者所有 随着最新的稳定版本Vue CLI 3即将发布,是时候 ...
- C++玄学预编译优化
#pragma GCC diagnostic error "-std=c++11" #pragma GCC optimize("-fdelete-null-pointer ...
- android Q build 变化
一 概述 android Q build变化整体上越来越严格,语法上之前能够使用的Q上将不能使用. 二 主要变化 2.1 'USER' 弃用 ‘USER’后面的值会被设置成‘nobody',andr ...
- C# 一般处理程序ashx接收服务端post过来json数据
这个和前端js的接收方式有点不一样,前端接收用request.form["xxx"]即可
- Python第六天 类型转换
Python第六天 类型转换 目录 Pycharm使用技巧(转载) Python第一天 安装 shell 文件 Python第二天 变量 运算符与表达式 input()与raw_inp ...
- Spring MVC中用@ResponseBody转json,对json进行处理方法汇总
<mvc:annotation-driven> <mvc:message-converters register-defaults="true"> < ...
- c/c++ linux 进程间通信系列7,使用pthread mutex
linux 进程间通信系列7,使用pthread mutex #include <stdio.h> #include <stdlib.h> #include <unist ...
- Zookeeper与Kafka基础概念和原理
1.zookeeper概念介绍 在介绍ZooKeeper之前,先来介绍一下分布式协调技术,所谓分布式协调技术主要是用来解决分布式环境当中多个进程之间的同步控制,让他们有序的去访问某种共享资源,防止造成 ...