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所支持的數據類型。