如何在Python中實現持久化物件?

WBOY
發布: 2023-09-13 12:41:02
轉載
758 人瀏覽過

如何在Python中實現持久化物件?

要在Python中實作持久化對象,請使用下列函式庫。

  • 上架
  • 泡菜

擱置模組

「架子」是一個持久的、類似字典的物件。與「dbm」資料庫的區別在於,架子中的值(不是鍵!)本質上可以是任意 Python 物件 - pickle 模組可以處理的任何物件。這包括大多數類別實例、遞歸資料類型以及包含大量共享子物件的物件。

它有一些關鍵方法 -

  • shelve.open() - 開啟持久字典。指定的檔案名稱是基礎資料庫的基本檔案名稱。副作用是,檔案名稱中可能會新增副檔名,並且可能會建立多個檔案。預設情況下,底層資料庫檔案以讀寫方式開啟。

  • shelve.sync() − 如果使用writeback設定為True開啟了shelf,則將快取中的所有條目寫回。如果可行,也會清空快取並將持久性字典與磁碟上的資料同步。當使用close()關閉shelf時,會自動呼叫此方法。

  • shelve.close() − 同步並關閉持久化字典物件。

pickle 模組

pickle 模組實作了用於序列化和反序列化 Python 物件的二進位協議 結構。

  • Pickling 是將Python物件層次結構轉換為位元組的過程 流。要序列化一個物件層次結構,只需呼叫dumps()函數。

  • Unpickling是反向操作。從二進位檔案或類似位元組物件的位元組流中解析出來的 將其轉換回物件層次結構。若要反序列化資料流,您呼叫loads()函數 功能。

Pickle 模組功能

以下是pickle模組提供的函數。

  • pickle.dump() - 將物件的pickle表示寫入開啟的檔案物件檔案中。

  • pickle.dumps() − 傳回物件的pickle表示作為一個位元組對象,而不是 將其寫入文件中。

  • pickle.load() - 從開啟的檔案物件檔案中讀取物件的pickled表示。

  • pickle.loads() - 傳回 pickled 表示資料的重構物件層次結構 物件的

範例

首先,匯入pickle模組 -

import pickle
登入後複製

我們已經建立了以下輸入以進行pickle。

my_data = { 'BMW', 'Audi', 'Toyota', 'Benz'}
登入後複製

demo.pickle 檔案已建立。這個相同的 .pickle 檔案是用上面的清單進行醃製的。

with open("demo.pickle","wb") as file_handle:
   pickle.dump(my_data, file_handle, pickle.HIGHEST_PROTOCOL)
登入後複製

現在,取消上面的 pickled 檔案並取得輸入值。

with open("demo.pickle","rb") as file_handle:
   res = pickle.load(file_handle)
   print(res_data)
登入後複製

現在讓我們看看完整的範例。

import pickle

# Input Data
my_data = { 'BMW', 'Audi', 'Toyota', 'Benz'}

# Pickle the input
with open("demo.pickle","wb") as file_handle:
   pickle.dump(my_data, file_handle, pickle.HIGHEST_PROTOCOL)

# Unpickle the above pickled file
with open("demo.pickle","rb") as file_handle:
   res = pickle.load(file_handle)
   print(my_data) # display the output
登入後複製

輸出

set(['Benz', 'Toyota', 'BMW', 'Audi'])
登入後複製

以上是如何在Python中實現持久化物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:tutorialspoint.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!