shelve模块的详细信息见Python库参考:http://docs.python.org/3/library/shelve.html
直接看代码:
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] = person 15 16 def lookup_person(db): 17 \'\'\' 18 Query user for ID and desired field, and fetch the corresponding data from the shelf obejct 19 \'\'\' 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 cmd 36 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 return 50 finally: 51 database.close() 52 53 if __name__ == \'__main__\': 54 main()
简单交互过程:
在硬盘上产生的文件: