初出茅庐,python模块篇:pickle模块和pathlib模块(太过详细,篇幅较长)

本文介绍了Python的pickle模块和pathlib模块。pickle模块提供序列化和反序列化功能,支持Python对象与二进制数据间的转换。文章详细讲解了dumps(), loads(), dump()和load()四个函数的用法。pathlib模块则用于处理操作系统路径,包括PurePath和Path类,它们支持路径拼接和真实性检查等功能。" 83445773,7457872,Windows环境下PostgreSQL 8.1安装教程,"['数据库', 'PostgreSQL', 'Windows', '安装教程']
摘要由CSDN通过智能技术生成
在这里插入图片描述

**大家好,我是众多程序员中的一个小小扫地僧,所以大家可以叫我小僧**

今天是小僧第一次发文,希望大家多多支持,我也不知道发一些什么会比较好,所以就把我自己之前开始学python的时候做的一些笔记整理了一下,另外小僧会持续更新~ 所以你们可以关主一下小僧

废话不多说今天小僧跟大家聊一下python的模块,今天先发两个,因为比较细致,所以篇幅可能比较长,请耐心观看。

在使用python的过程中,都会接触到python模块,那么python模块是什么意思?模块的概念有哪些呢?很多刚开始学习python的估计会很蒙圈,今天我们就先讲一下pickle模块pathlib模块

1.pickle模块

Python 中有个序列化过程叫作 pickle,它能够实现任意对象与文本之间的相互转化,也可以实现任意对象与二进制之间的相互转化。也就是说,pickle 可以实现 Python 对象的存储及恢复。

值得一提的是,pickle 是 python 语言的一个标准模块,安装 python 的同时就已经安装了 pickle 库,因此它不需要再单独安装,使用 import 将其导入到程序中,就可以直接使用。

pickle 模块提供了以下 4 个函数供我们使用:
dumps():将 Python 中的对象序列化成二进制对象,并返回;
loads():读取给定的二进制对象数据,并将其转换为 Python 对象;
dump():将 Python 中的对象序列化成二进制对象,并写入文件;
load():读取指定的序列化数据文件,并返回对象。

以上这 4 个函数可以分成两类,其中 dumps 和 loads 实现基于内存的 Python 对象与二进制互转;dump 和 load 实现基于文件的 Python 对象与二进制互转。
pickle.dumps()函数
此函数用于将 Python 对象转为二进制对象,其语法格式如下:

dumps(obj, protocol=None, *, fix_imports=True)

此格式中各个参数的含义为:
obj:要转换的 Python 对象;
protocol:pickle 的转码协议,取值为 0、1、2、3、4,其中 0、1、2 对应 Python 早期的版本,3 和 4 则对应 Python 3.x 版本及之后的版本。未指定情况下,默认为 3。
其它参数:为了兼容 Python 2.x 版本而保留的参数,Python 3.x 中可以忽略。
【例 1】

import pickle
tup1 = ('I love Python', {
   1,2,3}, None)
#使用 dumps() 函数将 tup1 转成 p1
p1 = pickle.dumps(tup1)
print(p1)

输出结果为:

b'\x80\x03X\r\x00\x00\x00I love Pythonq\x00cbuiltins\nset\nq\x01]q\x02(K\x01K\x02K\x03e\x85q\x03Rq\x04N\x87q\x05.'

pickle.loads()函数
此函数用于将二进制对象转换成 Python 对象,其基本格式如下:

loads(data, *, fix_imports=True, encoding='ASCII', errors='strict')

其中,data 参数表示要转换的二进制对象,其它参数只是为了兼容 Python 2.x 版本而保留的,可以忽略。

【例 2】在例 1 的基础上,将 p1 对象反序列化为 Python 对象。

import pickle
tup1 = ('I love Python', {
   1,2,3}, None)
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值