Python Pickle与npy文件详解:存储与加载操作
版权申诉
179 浏览量
更新于2024-08-26
收藏 114KB PDF 举报
在Python编程中,Pickle和Numpy数组文件(npy)是两种常见的数据存储和持久化技术。本文主要探讨了Pickle文件的使用,这是一种用于序列化和反序列化Python对象的方法,适用于存储小到中等规模的数据。
1. **Pickle文件介绍**
Pickle模块提供了一种简单的方式将Python对象(如字典、列表、类实例等)转换为可存储的二进制形式,然后保存到.pkl文件中。它的目标是让数据的存储和恢复过程尽可能地简洁。与数据库相比,Pickle更侧重于轻量级的数据存储和快速的交互,适合本地应用程序的数据存储需求。
2. **写入Pickle文件**
使用`pickle.dump()`函数可以将对象序列化并写入文件。例如,通过创建一个字典对象,然后使用`with open()`语句指定文件路径和二进制写模式('wb'),将字典写入pickle文件。`protocol`参数可以选择0(文本格式)、1(二进制格式,兼容性更好)或2(更高效但不保证跨版本兼容)。
```python
import pickle
d = dict(name='Bob', age=21, score=99)
with open('val.pickle', 'wb') as f:
pickle.dump(d, f)
```
3. **读取Pickle文件**
反序列化数据则是通过`pickle.load()`函数实现,它从文件中读取数据并将其解析回Python对象。可以通过两种方式读取:第一种是直接使用`open()`函数以二进制模式读取,然后调用`pickle.load()`;第二种是导入`pickle`模块别名`pkl`,简化代码操作。
```python
# 方法一
file = open('/Data/Embedding/rel.voc.pickle', 'rb')
data = pickle.load(file)
print(type(data))
# 方法二
test = pkl.load(open("fold-0.test.pickle", "rb"))
print(type(test))
```
4. **将Pickle数据转存至txt文件**
在某些场景下,可能需要将Pickle中的数据转换为文本格式(如字典的键值对)。这可以通过遍历字典并逐个写入字符串到txt文件中实现。例如:
```python
f = open('/Data/Embedding/rel.voc.txt', 'w', encoding='utf-8')
for k, v in data.items():
s1 = str(k)
s2 = str(v)
f.write(s1 + ': ' + s2)
```
Numpy文件(npy)通常是用来存储NumPy数组的,而Pickle更适合任何Python对象。然而,Numpy提供了更为高效且专门针对数值数据的存储选项,例如`numpy.save()`和`numpy.load()`。选择哪种格式取决于数据类型和性能需求。如果只是存储Python对象,Pickle是简便的选择;而对于数值密集型数据,Numpy的npy格式会更加合适。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2021-12-03 上传
2021-12-03 上传
2021-12-04 上传
2024-08-03 上传
2020-09-19 上传
2023-08-11 上传
一诺网络技术
- 粉丝: 0
- 资源: 2万+
最新资源
- JavaScript实现的高效pomodoro时钟教程
- CMake 3.25.3版本发布:程序员必备构建工具
- 直流无刷电机控制技术项目源码集合
- Ak Kamal电子安全客户端加载器-CRX插件介绍
- 揭露流氓软件:月息背后的秘密
- 京东自动抢购茅台脚本指南:如何设置eid与fp参数
- 动态格式化Matlab轴刻度标签 - ticklabelformat实用教程
- DSTUHack2021后端接口与Go语言实现解析
- CMake 3.25.2版本Linux软件包发布
- Node.js网络数据抓取技术深入解析
- QRSorteios-crx扩展:优化税务文件扫描流程
- 掌握JavaScript中的算法技巧
- Rails+React打造MF员工租房解决方案
- Utsanjan:自学成才的UI/UX设计师与技术博客作者
- CMake 3.25.2版本发布,支持Windows x86_64架构
- AR_RENTAL平台:HTML技术在增强现实领域的应用