shelve模块的详细信息见Python库参考:
直接看代码:
1 # database.py 2 import sys, shelve 3 4 def store_person(db): 5 ''' 6 Query user for data and store it in the shelf object 7 ''' 8 pid = input('Enter unique ID number:') 9 person = {}10 person['name'] = input('Enter name:')11 person['age'] = input('Enter age:')12 person['phone'] = input('Enter phone:')13 14 db[pid] = person15 16 def lookup_person(db):17 '''18 Query user for ID and desired field, and fetch the corresponding data from the shelf obejct19 '''20 pid= input('Enter ID number:')21 field = input('What would you like to know?(choice option: name,age,phone):')22 field = field.strip().lower()23 print(field.capitalize()+':', db[pid][field])24 25 def print_help():26 print('The available commands are:')27 print('store : Stores information about a person')28 print('lookup : Looks up a person from ID number')29 print('quit : Save changes are exit')30 print('? : Prints this message')31 32 def enter_command():33 cmd = input('Enter command(? for help):')34 cmd = cmd.strip().lower()35 return cmd36 37 def main():38 database = shelve.open('D:\\database.dat')39 try:40 while True:41 cmd = enter_command()42 if cmd == 'store':43 store_person(database)44 elif cmd == 'lookup':45 lookup_person(database)46 elif cmd =='?':47 print_help()48 elif cmd == 'quit':49 return50 finally:51 database.close()52 53 if __name__ == '__main__':54 main()
简单交互过程:
在硬盘上产生的文件: