pyhton 二进制形式操作文件 pickle函数
发布日期:2021-05-07 23:05:34 浏览次数:26 分类:精选文章

本文共 942 字,大约阅读时间需要 3 分钟。

背景

在Python的shell交互式环境中,键盘输入会被自动转化为字符,因此对于列表、字典和集合等数据结构,输入的功能会被丢失。为了解决这个问题,Python提供了eval()函数,可以将输入的字符串转化为具体的数据类型。例如:

用户输入示例:

eval("{1:'1'}") → {1: '1'}  eval("[1,2,3]") → [1, 2, 3]  eval("{1,2,3}") → {1, 2, 3}  eval("1,2,3")(1, 2, 3) → (1, 2, 3)

然而,对于一些输入和输出,我们并不希望以字符串形式处理数据。这时候,Python提供了pickle()函数,用于对数据进行存储和读取。

什么是pickle函数?

pickle函数可以将Python对象存储为二进制文件,并支持文件的读取和存储。具体来说,pickling是将对象存储为二进制文件,而unpickling则是将二进制文件读取为具体的对象。

pickle对象的基本方法

pickle函数主要提供了两个方法:

  • pickle.dump(object, f_name):将指定对象存储到指定文件中,文件的读写模式必须设置为"wb"
  • pickle.load(f_name):从指定文件中读取二进制数据,并将其转化为Python对象。

文件存储与读取

以下是一个简单的文件存储示例:

import pickle  ls = [1, 2, 3]  f_name = open("test_pickle.txt", "wb")  pickle.dump(ls, f_name)  f_name.close()

运行上述代码后,可以看到生成的文件内容看起来像是乱码:

![图片描述](https://img-blog.csdnimg.cn/20190803132721412.png)

然后,我们可以通过以下代码读取文件内容:

import pickle  f_name = open("test_pickle.txt", "rb")  pickle_source = pickle.load(f_name)  print(pickle_source)

运行上述代码后,会输出:

[1, 2, 3]
上一篇:python 列表推导式 复合数据类型的推导式
下一篇:python 函数的递归

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2025年03月18日 01时37分52秒