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的Django框架下搭建的BLOG添加RSS功能的教程
Apr 08 Python
python中使用正则表达式的连接符示例代码
Oct 10 Python
Python输出各行命令详解
Feb 01 Python
python-docx修改已存在的Word文档的表格的字体格式方法
May 08 Python
python写入并获取剪切板内容的实例
May 31 Python
Python的UTC时间转换讲解
Feb 26 Python
Python坐标线性插值应用实现
Nov 13 Python
python二分法查找算法实现方法【递归与非递归】
Dec 06 Python
django框架forms组件用法实例详解
Dec 10 Python
详解有关PyCharm安装库失败的问题的解决方法
Feb 02 Python
python filecmp.dircmp实现递归比对两个目录的方法
May 22 Python
Python 生成短8位唯一id实战教程
Jan 13 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新手上路(十)
2006/10/09 PHP
使用php 获取时间今天明天昨天时间戳的详解
2013/06/20 PHP
php生成图片验证码的实例讲解
2015/08/03 PHP
Yii2.0中使用js异步删除示例
2017/03/10 PHP
增强的 JavaScript 的 trim 函数的代码
2007/08/13 Javascript
不懂JavaScript应该怎样学
2008/04/16 Javascript
jQuery中.live()方法的用法深入解析
2013/12/30 Javascript
jQuery对下拉框,单选框,多选框的操作
2014/02/21 Javascript
javascript写的一个模拟阅读小说的程序
2014/04/04 Javascript
node.js中的console.dir方法使用说明
2014/12/10 Javascript
js鼠标点击按钮切换图片-图片自动切换-点击左右按钮切换特效代码
2015/09/02 Javascript
bootstrap快速制作后台界面
2016/12/05 Javascript
详谈Angular 2+ 的表单(一)之模板驱动型表单
2017/04/25 Javascript
React中使用collections时key的重要性详解
2017/08/07 Javascript
js 数组详细操作方法及解析合集
2018/06/01 Javascript
JavaScript面向对象程序设计创建对象的方法分析
2018/08/13 Javascript
微信小程序多音频播放进度条问题
2018/08/28 Javascript
ES6基础之数组和对象的拓展实例详解
2019/08/22 Javascript
vue+Element-ui实现分页效果
2020/11/15 Javascript
初步解析Python下的多进程编程
2015/04/28 Python
Python内置的HTTP协议服务器SimpleHTTPServer使用指南
2016/03/30 Python
python通过伪装头部数据抵抗反爬虫的实例
2018/05/07 Python
Python3和pyqt5实现控件数据动态显示方式
2019/12/13 Python
Python自带的IDE在哪里
2020/07/01 Python
CSS3 3D旋转rotate效果实例介绍
2016/05/03 HTML / CSS
HTML5边玩边学(3)像素和颜色
2010/09/21 HTML / CSS
斯洛伐克时尚服装网上商店:Cellbes
2016/10/20 全球购物
共产党员公开承诺书
2014/03/25 职场文书
市场部经理岗位职责
2014/04/10 职场文书
厨房领班竞聘演讲稿
2014/04/23 职场文书
团支书竞选演讲稿
2014/04/28 职场文书
社区禁毒工作方案
2014/06/02 职场文书
工作表扬信范文
2015/01/17 职场文书
春节晚会开场白
2015/05/29 职场文书
如何理解PHP核心特性命名空间
2021/05/28 PHP
MongoDB支持的数据类型
2022/04/11 MongoDB