pickle文件存储和保存

此博客展示了Python代码,定义了Cat类,包含foot、head、body属性。还实现了open_pickle_file和save_pickle_file函数,分别用于打开和保存二进制文件。最后在主程序中创建Cat对象列表,保存到文件并读取文件内容。

import pickle


class Cat:
    '''
    The object of cat
    '''
    foot = "foot"
    head = "head"
    body = "body"


def open_pickle_file(file_path):
    '''
    Open the file of bin
    :param file_path: path of file
    :return:
    '''
    with open(file_path, 'rb') as f:
        data = pickle.load(f)
        print(data[0].head)
        print(data[0].body)
        print(data[0].foot)
    return 0


def save_pickle_file(data, file_path):
    '''
    Save the file of data
    :param data: The data of input
    :param file_path: The path of file
    :return:
    '''
    with open(file_path, 'wb') as f:
        pickle.dump(data, f)


if __name__ == '__main__':
    file_path = 'D:/tmp.pk'
    data = list()
    data.append(Cat())
    data.append(Cat())
    save_pickle_file(data, file_path)
    open_pickle_file(file_path)

### 使用 `pickle` 模块保存对象到文件 Python 的 `pickle` 模块能够将 Python 对象序列化为字节流,并将其保存至文件中。这使得复杂的数据结构可以直接被持久化,无需手动处理格式转换。 为了实现这一功能,通常会遵循如下模式: - 打开一个文件以供写入; - 创建或获取待保存的对象; - 调用 `pickle.dump()` 方法执行序列化过程并将结果写入打开的文件。 下面给出一段具体的代码示例来展示如何使用 `pickle` 来保存对象[^2]: ```python import pickle class ExampleClass: def __init__(self, value): self.value = value example_object = ExampleClass(10) with open('object.pkl', 'wb') as file: pickle.dump(example_object, file) ``` 上述代码定义了一个名为 `ExampleClass` 的类以及其实例 `example_object` 。通过调用 `pickle.dump()`, 将该实例序列化并存入名为 `'object.pkl'` 的文件中。注意这里指定了二进制模式 (`'wb'`) 进行写入操作,因为 `pickle` 默认生成的是二进制格式的内容[^1]。 当需要恢复之前保存的对象时,则可以通过相应的加载函数读取这些数据: ```python with open('object.pkl', 'rb') as file: loaded_object = pickle.load(file) print(f"The loaded object's value is {loaded_object.value}") ``` 此段脚本展示了怎样重新载入先前由 `pickle.dump()` 序列化的对象,并打印其属性值验证成功还原了原始状态下的对象[^3]。 值得注意的是,在应用 `pickle` 功能的同时也要关注安全性方面的问题;由于反序列化过程中可能存在风险,因此建议仅从可信源加载 pickled 数据[^4]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值