使用 Python 读取 Pickle 文件

Vaibhav Vaibhav 2023年1月30日
  1. 在 Python 中使用 pickle 模块读取 Pickle 文件
  2. 在 Python 中使用 pandas 模块读取 Pickle 文件
使用 Python 读取 Pickle 文件

在 Python 中,pickling 是指将 Python 对象(列表、字典等)转换为二进制流,而 unpickling 是指将二进制数据流转换为 Python 对象。

转换后的二进制数据流包含重建原始对象的所有信息。不幸的是,pickle 文件通常被认为是不安全的。

Pickle 文件用于保存程序的状态(变量、对象及其状态等的值),将 Python 对象以序列化二进制字符串的形式存储到数据库中,通过 TCP 或传输控制协议发送数据等。

在训练机器学习模型时,pickle 文件用于存储模型权重,有时,加载的训练数据或格式化的训练数据以 pickle 文件的形式存储回磁盘。

在本文中,我们将了解如何使用 Python 读取这些 pickle 文件。我们将讨论两种这样的方式。

在 Python 中使用 pickle 模块读取 Pickle 文件

Python 有一个内置模块 pickle,其中包含使用 Python 序列化和反序列化数据的实用程序。这些数据可以存储在 pickle 文件中。

我们可以使用 pickle 模块使用 Python 读取 pickle 文件。请参阅以下 Python 代码。

objects = []
file_name = "/path/to/the/pickle/file"

with (open(file_name, "rb")) as f:
    while True:
        try:
            objects.append(pickle.load(f))
        except EOFError:
            break

在上面的代码中,objects 变量将保存 pickle 文件的所有数据。

代码循环遍历文件以读取它,直到发现 EOFError 异常。同样是数据存储在 pickle 文件内的对象中。

pickle 模块中的 load() 函数只会读取单个对象。读取一个对象后,文件指针指向 pickle 文件中下一个对象的开头。

请参阅此处链接的文档以了解更多信息。

在 Python 中使用 pandas 模块读取 Pickle 文件

我们可以使用 pandas 库来读取 Python 中的 pickle 文件。

pandas 模块有一个 read_pickle() 方法,可用于读取 pickle 文件。

此方法接受一个 filepath_or_buffer 参数:文件路径、URL 或将从中加载 pickle 文件的缓冲区。此函数将返回文件的未腌制对象。

现在让我们看看如何实际使用这种方法。请参阅以下 Python 代码。

import pandas as pd

file_name = "/path/to/the/pickle/file"
objects = pd.read_pickle(file_name)

要了解有关 read_pickle() 方法的更多信息,请参阅此处官方文档。

作者: Vaibhav Vaibhav
Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.

相关文章 - Python Pickle