Python使用shelve模块实现简单数据存储的方法


Posted in Python onMay 20, 2015

本文实例讲述了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程序设计有所帮助。

Python 相关文章推荐
Python 列表list使用介绍
Nov 30 Python
详解Python设计模式编程中观察者模式与策略模式的运用
Mar 02 Python
Linux上安装Python的PIL和Pillow库处理图片的实例教程
Jun 23 Python
Python学习教程之常用的内置函数大全
Jul 14 Python
python书籍信息爬虫实例
Mar 19 Python
关于Python的一些学习总结
May 25 Python
python实现京东秒杀功能
Jul 30 Python
django 中的聚合函数,分组函数,F 查询,Q查询
Jul 25 Python
解决json中ensure_ascii=False的问题
Apr 03 Python
Numpy一维线性插值函数的用法
Apr 22 Python
Python基于httpx模块实现发送请求
Jul 07 Python
python实现杨辉三角的几种方法代码实例
Mar 02 Python
Python使用matplotlib实现在坐标系中画一个矩形的方法
May 20 #Python
python获取指定目录下所有文件名列表的方法
May 20 #Python
Python使用reportlab将目录下所有的文本文件打印成pdf的方法
May 20 #Python
Python使用matplotlib绘制动画的方法
May 20 #Python
Python中subprocess模块用法实例详解
May 20 #Python
python检测某个变量是否有定义的方法
May 20 #Python
Python实现在matplotlib中两个坐标轴之间画一条直线光标的方法
May 20 #Python
You might like
PHP中对缓冲区的控制实现代码
2013/09/29 PHP
php实现判断访问来路是否为搜索引擎机器人的方法
2015/04/15 PHP
php实现通过cookie换肤的方法
2015/07/13 PHP
Yii框架表单模型和验证用法
2016/05/20 PHP
php抽象方法和普通方法的区别点总结
2019/10/13 PHP
关于Javascript与iframe的那些事儿
2013/07/04 Javascript
今天是星期几的4种JS代码写法
2013/09/17 Javascript
jquery.hotkeys监听键盘按下事件keydown插件
2014/05/11 Javascript
基于NodeJS的前后端分离的思考与实践(四)安全问题解决方案
2014/09/26 NodeJs
详解jQuery中的元素的属性和相关操作
2015/08/14 Javascript
小巧强大的jquery layer弹窗弹层插件
2015/12/06 Javascript
js 文字超出长度用省略号代替,鼠标悬停并以悬浮框显示实例
2016/12/06 Javascript
javascript中对象的定义、使用以及对象和原型链操作小结
2016/12/14 Javascript
AngularJS实现页面定时刷新
2017/03/14 Javascript
JavaScript纯色二维码变成彩色二维码
2020/07/23 Javascript
for循环 + setTimeout 结合一些示例(前端面试题)
2017/08/30 Javascript
15分钟深入了解JS继承分类、原理与用法
2019/01/19 Javascript
nodejs分离html文件里面的js和css的方法
2019/04/09 NodeJs
vue语法自动转typescript(解放双手)
2019/09/18 Javascript
python二分查找算法的递归实现方法
2016/05/12 Python
Django实现简单分页功能的方法详解
2017/12/05 Python
python实现将读入的多维list转为一维list的方法
2018/06/28 Python
python里运用私有属性和方法总结
2019/07/08 Python
Python制作简易版小工具之计算天数的实现思路
2020/02/13 Python
Pytest mark使用实例及原理解析
2020/02/22 Python
详解Pycharm安装及Django安装配置指南
2020/09/15 Python
CSS改变网页中鼠标选中文字背景颜色例子
2014/04/23 HTML / CSS
《七颗钻石》教学反思
2014/02/28 职场文书
厨师个人自我鉴定范文
2014/04/19 职场文书
区域销售主管岗位职责
2014/06/15 职场文书
外贸英文求职信范文
2015/03/19 职场文书
小学体育课教学反思
2016/02/16 职场文书
创业计划书之DIY自助厨房
2019/09/06 职场文书
php中pcntl_fork详解
2021/04/01 PHP
MySQL GRANT用户授权的实现
2021/06/18 MySQL
baselines示例程序train_cartpole.py的ImportError
2022/05/20 Python