本文实例讲述了Python使用shelve模块实现简单数据存储的方法。分享给大家供大家参考。具体分析如下:
Python的shelve模块提供了一种简单的数据存储方案,以dict(字典)的形式来操作数据。
#!/usr/bin/python import sys, shelve def store_person(db): \"\"\" Query user for data and store it in the shelf object \"\"\" pid = raw_input(\'Enter unique ID number:\') person = {} person[\'name\'] = raw_input(\'Enter name:\') person[\'age\'] = raw_input(\'Enter age:\') person[\'phone\'] = raw_input(\'Enter phone number:\') db[pid] = person def lookup_person(db): \"\"\" Query user for ID and desired field, and fetch the corresponding data from the shelf object \"\"\" pid = raw_input(\'Enter unique ID number:\') temp = db[pid] field = raw_input(\'Please enter name, age or phone:\') field.strip().lower() print field.capitalize() + \': \', temp[field] def print_help(): print \'The avaliable commands are:\' print \'store :Stores infomation about a person\' print \'lookup :Looks up a person form ID number\' print \'quit :Save changes and exit\' print \'? :Prints this message\' def enter_command(): cmd = raw_input(\'Enter command(? for help):\') cmd = cmd.strip().lower() return cmd def main(): database = shelve.open(\'database\') # database stores in current directory 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() # Close database in any condition if __name__ == \'__main__\': main()
希望本文所述对大家的Python程序设计有所帮助。