Shelve是一個功能強大的Python模組,用於物件持久性。擱置物件時,必須指定一個用於識別物件值的鍵。透過這種方式,擱置文件成為儲存值的資料庫,其中任何一個都可以隨時存取。
Python中擱置的範例程式碼
要擱置對象,先匯入模組,然後如下指派物件值:
import shelve database = shelve.open(filename.suffix) object = Object() database['key'] = object
例如,如果您要保留股票資料庫,可以調整下列程式碼:
import shelve stockvalues_db = shelve.open('stockvalues.db') object_ibm = Values.ibm() stockvalues_db['ibm'] = object_ibm object_vmw = Values.vmw() stockvalues_db['vmw'] = object_vmw object_db = Values.db() stockvalues_db['db'] = object_db
「stock values.db」已經打開,您無需再次打開它。相反,您可以一次打開多個資料庫,隨意寫入每個資料庫,並在程式終止時讓Python關閉它們。例如,您可以為每個符號保留一個單獨的名稱資料庫,並將以下內容附加到前面的程式碼中:
## assuming shelve is already imported stocknames_db = shelve.open('stocknames.db') objectname_ibm = Names.ibm() stocknames_db['ibm'] = objectname_ibm objectname_vmw = Names.vmw() stocknames_db['vmw'] = objectname_vmw objectname_db = Names.db() stocknames_db['db'] = objectname_db
請注意,資料庫檔案的名稱或後綴的任何變更都構成不同的文件,因此構成不同的資料庫。
結果是包含給定值的第二個資料庫檔案。與大多數以自定格式編寫的文件不同,擱置的資料庫以二進位形式保存。
將資料寫入檔案後,可以隨時呼叫。如果要在以後的會話中還原數據,請重新開啟該檔案。如果它是同一個會話,只需呼叫該值; 擱置資料庫檔案以讀寫模式開啟。以下是實現此目的的基本語法:
import shelve database = shelve.open(filename.suffix) object = database['key']
因此,前面範例中的範例將顯示為:
import shelve stockname_file = shelve.open('stocknames.db') stockname_ibm = stockname_file['ibm'] stockname_db = stockname_file['db']
擱置的考慮因素
請務必注意,在關閉在資料庫之前(或直到程式終止),資料庫將保持開啟狀態。因此,如果您正在編寫任何大小的程序,則需要在使用它之後關閉資料庫。否則,整個資料庫(不僅僅是您想要的值)位於記憶體中並消耗計算資源。
要關閉擱置文件,請使用以下語法:
database.close()
如果上面的所有程式碼範例都合併到一個程式中,那麼我們將開啟兩個資料庫檔案並消耗記憶體。因此,在閱讀上一個範例中的股票名稱之後,您可以依序關閉每個資料庫,如下所示:
stockvalues_db.close() stocknames_db.close() stockname_file.close()
以上是在Python中如何使用Shelve保存對象的詳細內容。更多資訊請關注PHP中文網其他相關文章!