Python的shelve模块提供了一种简单的数据存储方案,以dict(字典)的形式来操作数据。
#Python版本2.7,使用Notepad++ 6.1.5编写。
#此代码参考自《Python基础教程第2版》。
#database = shelve.open('D:\\python-test\\test.dat')此路径请自行修改。
#运行后请输入?号查看帮助,谢谢。
import sys, shelve
def store_person(db):
'''
Store your info.
'''
pid = raw_input('Enter your ID: ')
person = {}
person['name'] = raw_input('Enter your name: ')
person['age'] = raw_input('Enter your age: ')
person['phone'] = raw_input('Enter your phone number: ')
db[pid] = person
#
def lookup_person(db):
'''
Lookup your info.
'''
pid = raw_input('Enter the ID: ')
if pid in db.keys(): #检查输入的ID是否存在
field = raw_input('What do you want to lookup?(Name, Age, Phone)')
field = field.strip() #删除field中可能有的空格和换行符
if field in ('Name', 'Age', 'Phone'): #检查用户的输入
field = field.strip().lower()
print field.capitalize() + ':', db[pid][field]
else:
print 'The input is error!Please enter: Name, Age or Phone'
else:
print "The ID is not exist!"
#lookup_person(db)
#
def print_help():
print '''
The available commands are:
store, lookup,quit,?
'''
#
def enter_command():
cmd = raw_input('Enter your command("?" for help): ')
cmd = cmd.strip().lower()
return cmd
#
def main():
database = shelve.open('D:\\python-test\\test.dat')
try:
while True:
cmd = enter_command()
if cmd == 'store':
store_person(database)
elif cmd == 'lookup':
lookup_person(database)
elif cmd == '?':
print_help()
elif cmd == 'quit':
return
finally:
database.close()
if __name__ == '__main__': main()
转自:
http://www.oschina.net/code/snippet_587436_11798