python的shelve模塊


shelve

shelve是一額簡單的數據存儲方案,他只有一個函數就是open(),這個函數接收一個參數就是文件名,並且文件名必須是.bat類型的。然后返回一個shelf對象,你可以用他來存儲東西,就可以簡單的把他當作一個字典,當你存儲完畢的時候,就調用close函數來關閉
 
這個有一個潛在的小問題,如下:
import shelve

list = [1, 2, 3]

she = shelve.open('test.bat')
she['d'] = list
she['d'].append('f')print(she['d'])

你會發現,打印后,沒有‘f’ ,存儲的f到哪里去了呢?其實很簡單,d沒有寫回,你把[1,2,3]存到了d,當你再次讀取she['d']的時候,she['d']只是一個拷貝,而你沒有將拷貝寫回,所以當你再次讀取she['d']的時候,它又從源中讀取了一個拷貝,所以,你新修改的內容並不會出現在拷貝中,解決的辦法就是,第一個是利用一個緩存的變量,如下所示

 

import shelve

list = [1, 2, 3]

she = shelve.open('test.dat')
she['d'] = list
temp = she['d']
temp.append('f')
she['d'] = temp
print(she['d'])

 

這樣返回的結果就有‘f’了。

不過在shelve模塊中,key必須為字符串,而值可以是python所支持的數據類型。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM