如何使用Python儲存和讀取Pickle檔案

如何使用Python儲存和讀取Pickle檔案

使用 Python 儲存和讀取 Pickle 檔案

Pickle 是 Python 的一種特殊的檔案格式,它可以將 Python 的物件轉換成可儲存的檔案,以便在之後的時間點可以重新讀取出來。Pickle 檔案可以儲存任何 Python 物件,包括字典、列表、物件等等,它可以讓你在不同的時間點,或是不同的程式中,可以重新讀取出之前儲存的物件。

在 Python 中,可以使用 pickle 模組來儲存和讀取 Pickle 檔案,下面就來看看如何使用 pickle 模組來儲存和讀取 Pickle 檔案。

儲存 Pickle 檔案

首先,我們要先建立一個要儲存的物件,例如一個字典:

data = {
    'name': 'John',
    'age': 20,
    'gender': 'male'
}

接著,我們要使用 pickle 模組的 dump() 方法來將物件儲存到檔案中:

import pickle

with open('data.pickle', 'wb') as f:
    pickle.dump(data, f)

上面的程式碼會將 data 物件儲存到 data.pickle 檔案中,接著我們就可以在之後的時間點,或是不同的程式中,重新讀取出這個檔案中的物件。

讀取 Pickle 檔案

讀取 Pickle 檔案也很簡單,我們只要使用 pickle 模組的 load() 方法就可以將檔案中的物件讀取出來:

import pickle

with open('data.pickle', 'rb') as f:
    data = pickle.load(f)

print(data)

上面的程式碼會將 data.pickle 檔案中的物件讀取出來,並且將它存到 data 變數中,接著我們就可以使用 data 變數來取得檔案中的物件了。

儲存和讀取多個物件

除了可以儲存和讀取單一物件之外,pickle 模組也可以儲存和讀取多個物件,例如我們可以建立一個列表,裡面包含多個字典:

data_list = [
    {
        'name': 'John',
        'age': 20,
        'gender': 'male'
    },
    {
        'name': 'Mary',
        'age': 18,
        'gender': 'female'
    }
]

接著,我們可以使用 pickle 模組的 dump() 方法來將這個列表儲存到檔案中:

import pickle

with open('data_list.pickle', 'wb') as f:
    pickle.dump(data_list, f)

上面的程式碼會將 data_list 列表儲存到 data_list.pickle 檔案中,接著我們就可以在之後的時間點,或是不同的程式中,重新讀取出這個檔案中的物件。

讀取 data_list.pickle 檔案中的物件也很簡單,我們只要使用 pickle 模組的 load() 方法就可以將檔案中的物件讀取出來:

import pickle

with open('data_list.pickle', 'rb') as f:
    data_list = pickle.load(f)

print(data_list)

上面的程式碼會將 data_list.pickle 檔案中的物件讀取出來,並且將它存到 data_list 變數中,接著我們就可以使用 data_list 變數來取得檔案中的物件了。

結論

在本文中,我們介紹了如何使用 Python 的 pickle 模組來儲存和讀取 Pickle 檔案,Pickle 檔案可以儲存任何 Python 物件,包括字典、列表、物件等等,它可以讓你在不同的時間點,或是不同的程式中,可以重新讀取出之前儲存的物件。

此外,pickle 模組也可以儲存和讀取多個物件,只要將多個物件放到一個列表中,然後使用 pickle 模組的 dump()load() 方法就可以將多個物件儲存和讀取出來。

因此,使用 pickle 模組可以讓你在不同的時間點,或是不同的程式中,可以重新讀取出之前儲存的物件,這對於許多應用來說都是非常有用的功能。

推薦閱讀文章

Python Pickle 模塊
Python Pickle 模塊使用教程
Python Pickle 模塊詳解
Python Pickle 模塊的使用
Python Pickle 模塊的儲存和讀取</a

延伸閱讀本站文章

更多Python相關文章

推薦學習youtube影片

發佈留言