赞
踩
pkl格式文件,全称pickle,Python中一种用于序列化对象的文件格式。
以字典(dict)、数据框(DataFrame)或任何其他数据类型的形式作为数据集使用的时候,可能希望将它们保存到文件中,以便以后可以使用它们或将它们发送给其他人。 这就是Python的pickle模块的用途:它将对象序列化,以便将它们保存到文件中,并在以后再次加载到程序中。
Pickling允许将python对象保存为硬盘驱动器上的二进制文件。 在pickle对象后,可以结束你的python会话,重新启动你的计算机,然后再次将你的对象加载到python中。
处理pkl文件需要先导入pickle库,然后自定义字典数据内容。
要想保存pkl文件,需要先定义函数将以上的data数据转化为pkl文件,其中使用到了pickle.dump()函数,之后调用函数时传入参数data与data.pkl,也就是转化后的文件将以“data.pkl”命名,成功运行则输出一个句子表示文件成功转化并保存。
- import pickle
-
- data = {"Name": "Galaxy", "Age": 404, "City": "Ic"}
-
- # 将数据写入二进制文件的函数
- def write_b(b, b_path):
- with open(b_path, 'wb') as fw:
- pickle.dump(b, fw)
- write_b(data, 'data.pkl')
- print(f"Data has been serialized and saved to 'data.pkl'")
2.2 读取pkl文件
要想读取pkl文件则简单定义一个函数,然后调用它并输出即可,其中使用到了pickle.load()函数,调用时需要传入文件名称,也就是前面保存并命名的‘data.pkl’:
- # 从二进制文件读取数据的函数
- def read_b(b_path):
- with open(b_path, 'rb') as fr:
- b = pickle.load(fr)
- return b
- loaded_data = read_b('data.pkl')
- print("Loaded data:", loaded_data)
w:只写。打开即默认创建一个新文件,如果文件已存在,则覆盖写。
w+:写读。打开创建新文件并写入数据,如果文件已存在,则覆盖写。
wb:以二进制写方式打开,只能写文件, 如果文件不存在,创建该文件;如果文件已存在,则覆盖写。
r:只读。该文件必须已存在。
r+:可读可写。该文件必须已存在,写为追加在文件内容末尾。
rb:表示以二进制方式读取文件。该文件必须已存在。
a:追加写。若打开的是已有文件则直接对已有文件操作,若打开文件不存在则创建新文件,只能执行写(追加在后面),不能读。
a+:追加写读。打开文件方式与写入方式和'a'一样,但是可以读。需注意的是你若刚用‘a+’打开一个文件,一般不能直接读取,因为此时光标已经是文件末尾,除非你把光标移动到初始位置或任意非末尾的位置。
pickle.dump()函数:
pickle.dump(obj, file, protocol=None, *, fix_imports=True, buffer_callback=None)
将对象 obj 封存以后的对象写入已打开的 file object file。它等同于 Pickler(file, protocol).dump(obj)。
pickle.load()函数:
pickle.load(file, *, fix_imports=True, encoding='ASCII', errors='strict', buffers=None)
从已打开的 file object 文件 中读取封存后的对象,重建其中特定对象的层次结构并返回。它相当于 Unpickler(file).load()
pkl格式文件简介的参考文章:Python中的Pickle操作(pkl文件解释) | 数据学习者官方网站(Datalearner)
w/w+/wb/r/r+/rb/a/a+的参考文章:
一篇搞懂python文件读写操作(r/r+/rb/w/w+/wb/a/a+/ab) - 宁晃 - 博客园 (cnblogs.com)
更多有关pickle的详细内容:
pickle — Python object serialization — Python 3.12.4 documentation
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。