使用 Python 讀取 Pickle 檔案

Vaibhav Vaibhav 2023年1月30日 2022年5月17日
  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 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.

LinkedIn GitHub

相關文章 - Python Pickle