国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python使用Shelve保存對象方法總結

2020-02-16 00:57:02
字體:
來源:轉載
供稿:網友

Shelve是一個功能強大的Python模塊,用于對象持久性。擱置對象時,必須指定一個用于識別對象值的鍵。通過這種方式,擱置文件成為存儲值的數(shù)據(jù)庫,其中任何一個都可以隨時訪問。

Python中擱置的示例代碼

要擱置對象,首先導入模塊,然后按如下方式分配對象值:

import shelvedatabase = shelve.open(filename.suffix)object = Object()database['key'] = object

例如,如果要保留股票數(shù)據(jù)庫,可以調整以下代碼:

import shelvestockvalues_db = shelve.open('stockvalues.db')object_ibm = Values.ibm()stockvalues_db['ibm'] = object_ibmobject_vmw = Values.vmw()stockvalues_db['vmw'] = object_vmwobject_db = Values.db()stockvalues_db['db'] = object_db

“stock values.db”已經打開,您無需再次打開它。相反,您可以一次打開多個數(shù)據(jù)庫,隨意寫入每個數(shù)據(jù)庫,并在程序終止時讓Python關閉它們。例如,您可以為每個符號保留一個單獨的名稱數(shù)據(jù)庫,并將以下內容附加到前面的代碼中:

## assuming shelve is already importedstocknames_db = shelve.open('stocknames.db')objectname_ibm = Names.ibm()stocknames_db['ibm'] = objectname_ibmobjectname_vmw = Names.vmw()stocknames_db['vmw'] = objectname_vmwobjectname_db = Names.db()stocknames_db['db'] = objectname_db

請注意,數(shù)據(jù)庫文件的名稱或后綴的任何更改都構成不同的文件,因此構成不同的數(shù)據(jù)庫。

結果是包含給定值的第二個數(shù)據(jù)庫文件。與大多數(shù)以自定格式編寫的文件不同,擱置的數(shù)據(jù)庫以二進制形式保存。

將數(shù)據(jù)寫入文件后,可以隨時調用。如果要在以后的會話中還原數(shù)據(jù),請重新打開該文件。如果它是同一個會話,只需調用該值; 擱置數(shù)據(jù)庫文件以讀寫模式打開。以下是實現(xiàn)此目的的基本語法:

import shelvedatabase = shelve.open(filename.suffix)object = database['key']

因此,前面示例中的示例將顯示為:

import shelvestockname_file = shelve.open('stocknames.db')stockname_ibm = stockname_file['ibm']stockname_db = stockname_file['db']

擱置的考慮因素

請務必注意,在關閉數(shù)據(jù)庫之前(或直到程序終止),數(shù)據(jù)庫將保持打開狀態(tài)。因此,如果您正在編寫任何大小的程序,則需要在使用它之后關閉數(shù)據(jù)庫。否則,整個數(shù)據(jù)庫(不僅僅是您想要的值)位于內存中并消耗計算資源。

要關閉擱置文件,請使用以下語法:

database.close()

如果上面的所有代碼示例都合并到一個程序中,那么我們將打開兩個數(shù)據(jù)庫文件并消耗內存。因此,在閱讀上一個示例中的股票名稱之后,您可以依次關閉每個數(shù)據(jù)庫,如下所示:

stockvalues_db.close()stocknames_db.close()stockname_file.close()            
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 沁水县| 电白县| 金寨县| 龙口市| 鄢陵县| 信丰县| 昔阳县| 临武县| 民权县| 台中市| 大丰市| 郸城县| 保康县| 沂水县| 塔河县| 柳州市| 大悟县| 开原市| 柯坪县| 田阳县| 富源县| 海南省| 和林格尔县| 云南省| 浮山县| 阿勒泰市| 赣榆县| 镇沅| 西充县| 墨脱县| 清水县| 油尖旺区| 理塘县| 年辖:市辖区| 平顶山市| 莱阳市| 上蔡县| 咸丰县| 富民县| 肥西县| 三明市|