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 shelve简单数据存储)