Python中的pickle模块常用函数

 更新时间:2023年09月22日 09:12:44   作者:程序遇上智能星空  
这篇文章主要介绍了Python中的pickle模块常用函数,pickle模块使用的数据格式是python专用的,能够把python对象直接保存到文件,而不需要转化为字符串,也不用底层的文件访问操作把它们写入到一个二进制文件中,需要的朋友可以参考下

1、序列化、反序列化介绍

序列化:把对象转换为字节序列的过程称为对象的序列化。

反序列化:把字节序列恢复为对象的过程称为对象的反序列化。

2、pickle模块说明

python中的pickle模块实现了基本的数据序列化和反序列化。

通过pickle模块的序列化操作能够将程序中运行的对象信息保存到文件中去,永久存储;通过pickle模块的反序列化操作,能够从文件中创建上一次程序保存的对象。

pickle模块使用的数据格式是python专用的,能够把python对象直接保存到文件,而不需要转化为字符串,也不用底层的文件访问操作把它们写入到一个二进制文件中。

3、pickle模块常用函数

(1)pickle.dump(obj, file, [,protocol])

函数的功能:将obj对象序列化存入已经打开的file中。

参数:

obj:想要序列化的obj对象。

file:文件名称。

protocol:序列化使用的协议。如果该项省略,则默认为0。如果为负值或HIGHEST_PROTOCOL,则使用最高的协议版本。

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import pickle
# 将test对象序列化到文件中
def dump_test_data():
    test = [1, 2, 3]
    with open("test.pickle", "wb") as file:
        pickle.dump(test, file)

(2)pickle.load(file)

函数的功能:将file中的对象序列化读出。

参数:

file:文件名称。

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import pickle
# 将文件中test对象序列化读出
def load_test_data():
    with open("test.pickle", "rb") as file:
        test = pickle.load(file)
    return test

(3)pickle.dumps(obj[, protocol])

函数的功能:将obj对象序列化为string形式,而不是存入文件中。

参数:

obj:想要序列化的obj对象。

protocal:如果该项省略,则默认为0。如果为负值或HIGHEST_PROTOCOL,则使用最高的协议版本。

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import pickle
# 将test对象序列化为字符串形式
def dumps_test_data():
    test = [1, 2, 3]
    # dumps 将数据通过特殊的形式转换为仅python语言识别的字符串
    str_test = pickle.dumps(test)
    print(str_test)

(4)pickle.loads(string)

函数的功能:从string中读出序列化前的obj对象。

参数:

string:文件名称。

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import pickle
# 从string中读出序列化前的对象
def loads_test_data():
    test = [1, 2, 3]
    str_test = pickle.dumps(test)
    # loads 将pickle数据转化为python的数据结构
    loads_test = pickle.loads(str_test)
    print(loads_test)

到此这篇关于Python中的pickle模块常用函数的文章就介绍到这了,更多相关Python的pickle模块内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python 元类实例解析

    Python 元类实例解析

    这篇文章主要介绍了 Python 元类实例解析,此文的主要任务就是给大家彻底讲明白什么是元类,需要的朋友可以参考下
    2018-04-04
  • python绘制浅色范围曲线的示例代码

    python绘制浅色范围曲线的示例代码

    这篇文章主要介绍了python绘制浅色范围曲线,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-10-10
  • tensorflow 获取模型所有参数总和数量的方法

    tensorflow 获取模型所有参数总和数量的方法

    今天小编就为大家分享一篇tensorflow 获取模型所有参数总和数量的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • nginx搭建基于python的web环境的实现步骤

    nginx搭建基于python的web环境的实现步骤

    这篇文章主要介绍了nginx搭建基于python的web环境的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • 如何基于pandas读取csv后合并两个股票

    如何基于pandas读取csv后合并两个股票

    这篇文章主要介绍了如何基于pandas读取csv后合并两个股票,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • 使用python把xmind转换成excel测试用例的实现代码

    使用python把xmind转换成excel测试用例的实现代码

    这篇文章主要介绍了使用python把xmind转换成excel测试用例的实现代码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10
  • python爬虫 爬取58同城上所有城市的租房信息详解

    python爬虫 爬取58同城上所有城市的租房信息详解

    这篇文章主要介绍了python爬虫 爬取58同城上所有城市的租房信息详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • Python中Iterator迭代器的使用杂谈

    Python中Iterator迭代器的使用杂谈

    Python中的迭代器意义不仅是在iter函数上的运用,更是一种处理可迭代对象的迭代器模式,这里我们来简单聊聊Python中Iterator迭代器的使用杂谈:
    2016-06-06
  • python3中确保枚举值代码分析

    python3中确保枚举值代码分析

    在本篇文章里小编给大家整理的是一篇关于python3中确保枚举值代码分析内容,有兴趣的朋友们可以学习下。
    2020-12-12
  • python“静态”变量、实例变量与本地变量的声明示例

    python“静态”变量、实例变量与本地变量的声明示例

    这篇文章主要给大家介绍了关于python“静态”变量、实例变量与本地变量的声明的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11

最新评论