Python使用shelve模块实现简单数据存储的方法
本文实例讲述了Python使用shelve模块实现简单数据存储的方法。分享给大家供大家参考。具体分析如下:
Python的shelve模块提供了一种简单的数据存储方案,以dict(字典)的形式来操作数据。
#!/usr/bin/python
importsys,shelve
defstore_person(db):
"""
Queryuserfordataandstoreitintheshelfobject
"""
pid=raw_input('EnteruniqueIDnumber:')
person={}
person['name']=raw_input('Entername:')
person['age']=raw_input('Enterage:')
person['phone']=raw_input('Enterphonenumber:')
db[pid]=person
deflookup_person(db):
"""
QueryuserforIDanddesiredfield,
andfetchthecorrespondingdata
fromtheshelfobject
"""
pid=raw_input('EnteruniqueIDnumber:')
temp=db[pid]
field=raw_input('Pleaseentername,ageorphone:')
field.strip().lower()
printfield.capitalize()+':',temp[field]
defprint_help():
print'Theavaliablecommandsare:'
print'store:Storesinfomationaboutaperson'
print'lookup:LooksupapersonformIDnumber'
print'quit:Savechangesandexit'
print'?:Printsthismessage'
defenter_command():
cmd=raw_input('Entercommand(?forhelp):')
cmd=cmd.strip().lower()
returncmd
defmain():
database=shelve.open('database')
#databasestoresincurrentdirectory
try:
whileTrue:
cmd=enter_command()
ifcmd=='store':
store_person(database)
elifcmd=='lookup':
lookup_person(database)
elifcmd=='?':
print_help()
elifcmd=='quit':
return
finally:
database.close()
#Closedatabaseinanycondition
if__name__=='__main__':
main()
希望本文所述对大家的Python程序设计有所帮助。