python shelve模組
shelve
shelve是一個簡單的資料儲存方案,他只有一個函數就是open(),這個函數接收一個參數就是檔名,然後回傳一個shelf對象,你可以用他來儲存東西,就可以簡單的把他當作一個字典,當你儲存完畢的時候,就呼叫close函數來關閉
這個有一個潛在的小問題,如下:
[python] view plaincopy
>>> import shelve
>>> s = shelve. open('test.dat')
>>> s['x'] = ['a', 'b', 'c']
>>> s['x'].append('d')
>>> s['x']
['a', 'b', 'c']
儲存的d到哪裡去了呢?其實很簡單,d沒有寫回,你把['a', 'b', 'c']存到了x,當你再次讀取s['x']的時候,s['x']只是一個拷貝,而你沒有將拷貝寫回,所以當你再次讀取s['x']的時候,它又從源中讀取了一個拷貝,所以,你新修改的內容並不會出現在拷貝中,解決的辦法就是,第一個是利用一個緩存的變量,如下所示
[python] view plaincopy
>>> temp = s['x']
>>> temp.append('d')
>>> s['x'] = temp
>>> s['x']
['a', 'b', 'c', 'd']
在python2.4中有了另一個的方法,就是把open方法的writeback參數的值賦為True,這樣的話,你open後所有的內容都將在cache中,當你close的時候,將全部一次性寫到硬碟裡面。如果資料量不是很大的時候,建議這麼做。
下面是一個基於shelve的簡單資料庫的程式碼
[python] view plaincopy
#database.py
import sys, shelve
user for data and store it in the shelf object
"""
pid = raw_input('Enter unique ID number: ')
) person['age'] = raw_input( 'Enter age: ')
person['phone'] = raw_input('Enter phone number: ')
db[pid] = person
Query user for ID and desired field , and fetch the corresponding data from
the shelf object
"""
pid = raw_input('Enter number: ') ') phone) ')
field = field.strip().lower()
print field.capitalize() + ':',
db[pid able commons are: '
print ' store :Stores information about a person'
print 'lookup :Looks up a person from ID number'
print 'quit print:Save s and exave '
def enter_command():
cmd = raw_input ('Enter command (? for help): ')
cmd = cmd.strip().lower()
return cmd
, main(():openomain(com):open
try:
while True:
cmd = enter_command() store_person(database)
elif cmd == '查找':
Lookup_person(資料庫)
print_help()
elif cmd == '退出':
database.close()
if __name__ = = '__main__': main()

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Google AI 為開發者發佈 Gemini 1.5 Pro 和 Gemma 2
