shelve是乙個功能強大的python模組,用於物件永續性。擱置物件時,必須指定乙個用於識別物件值的鍵。通過這種方式,擱置檔案成為儲存值的資料庫,其中任何乙個都可以隨時訪問。
程式設計客棧python中擱置的示例**
要擱置物件,首先匯入模組,然後按如下方式分配物件值:
import shelve
datab程式設計客棧ase = shzgdzryzxelve.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.ozgdzryzxpen('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儲存物件方法總結
本文位址:
使用shelve模組儲存變數 python)
利用 shelve 模組,你可以將 python 程式中的變數儲存到二進位制的 shelf 檔案中。這樣,程式就可以從硬碟中恢復變數的資料。shelve 模組讓你在程式中新增 儲存 和 開啟 功能。例如,如果執行乙個程式,並輸入了一些配置設定,就可以將這些設定儲存到乙個 shelf 檔案,然後讓程式...
shelve模組使用
shelve模組是乙個簡單的key,value將記憶體資料通過檔案持久化的模組,可以持久化任何pickle可支援的python資料格式 import shelve data shelve.open shelve file 開啟乙個檔案 info name zhangsan lisi wangwu d...
python中shelve模組的基本使用
主要對資料進行序列化反序列化,不過會在本地建立乙個類似資料倉儲,持久的儲存資料。import shelve 存資料 name alce bob janice infos days 31,28,31,30,31 with shelve.open c users administrator deskto...