首頁 > 後端開發 > Python教學 > 如何使用 Pickle 高效保存和檢索 Python 物件?

如何使用 Pickle 高效保存和檢索 Python 物件?

Linda Hamilton
發布: 2024-12-09 09:03:06
原創
894 人瀏覽過

How Can I Efficiently Save and Retrieve Python Objects Using Pickle?

保存物件:實現資料持久化

在物件導向程式設計中,儲存和擷取物件的狀態對於資料持久化至關重要。

要儲存對象,您可以使用 Python pickle 模組。讓我們探索如何:

  1. 為Pickle 包裝物件:
    使用pickle 模組,您可以透過將物件「包裝」在二進位流中來序列化對象。您可以透過以寫入二進位模式(「wb」)開啟檔案並使用pickle.dump() 函數來儲存物件來實現此目的:

    import pickle
    
    # Example object
    company1 = Company('banana', 40)
    
    with open('company_data.pkl', 'wb') as outp:
     pickle.dump(company1, outp, pickle.HIGHEST_PROTOCOL)
    登入後複製
  2. 利用cPickle 或_pickle (Python 3):
    為了提高效能,請考慮使用cPickle(或Python 中的 _pickle) 3)因為它比 pickle 模組快得多。只需取代導入語句:

    import cPickle as pickle
    登入後複製
  3. 最佳化協定版本:
    Pickle 使用不同的協定以不同的格式寫入資料。協定 0 是人類可讀的,而版本 >0 是二進位的。指定最高版本(-1) 可確保您的Python 版本使用最新支援的協定:

    pickle.dump(obj, outp, -1)
    登入後複製
  4. 儲存多個物件:
    您可以使用清單、元組或在單一pickle檔案中儲存多個物件dict:

    tech_companies = [
     Company('Apple', 114.18),
     Company('Google', 908.60),
     Company('Microsoft', 69.18)
    ]
    
    save_object(tech_companies, 'tech_companies.pkl')
    登入後複製
  5. 取消儲存的物件:
    要復原已儲存的對象,只需以讀取二進位模式('rb')開啟pickle檔案並使用pickle.load()檢索data:

    with open('company_data.pkl', 'rb') as inp:
     company1 = pickle.load(inp)
    登入後複製

總之,使用 pickle 模組提供了一種保存和復原物件的有效方法,使您能夠為應用程式建立持久資料結構。

以上是如何使用 Pickle 高效保存和檢索 Python 物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板