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之wxPython菜单使用详解
Sep 28 Python
编写Python的web框架中的Model的教程
Apr 29 Python
Python中isnumeric()方法的使用简介
May 19 Python
Python的网络编程库Gevent的安装及使用技巧
Jun 24 Python
python中利用Future对象异步返回结果示例代码
Sep 07 Python
Python 20行简单实现有道在线翻译的详解
May 15 Python
numpy和pandas中数组的合并、拉直和重塑实例
Jun 28 Python
python调试神器PySnooper的使用
Jul 03 Python
python面向对象 反射原理解析
Aug 12 Python
Python基于pygame实现单机版五子棋对战
Dec 26 Python
Opencv图像处理:如何判断图片里某个颜色值占的比例
Jun 03 Python
浅谈cv2.imread()和keras.preprocessing中的image.load_img()区别
Jun 12 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支持多种格式图片上传(支持jpg、png、gif)
2011/11/03 PHP
PHP fopen 读取带中文URL地址的一点见解
2012/09/25 PHP
windows8.1下Apache+Php+MySQL配置步骤
2015/10/30 PHP
PHP5.2中PDO的简单使用方法
2016/03/25 PHP
JAVASCRIPT 对象的创建与使用
2021/03/09 Javascript
Ajax::prototype 源码解读
2007/01/22 Javascript
理解Javascript_07_理解instanceof实现原理
2010/10/15 Javascript
javascript表单验证 - Parsley.js使用和配置
2013/01/25 Javascript
30分钟就入门的正则表达式基础教程
2013/02/25 Javascript
javascript正则表达式参数/g与/i及/gi的使用指南
2014/08/27 Javascript
jquery插件jquery.nicescroll实现图片无滚动条左右拖拽的方法
2015/08/10 Javascript
JavaScript实现将文本框的值插入指定位置的方法
2015/08/13 Javascript
Vuejs 组件——props数据传递的实例代码
2017/03/07 Javascript
java和js实现的洗牌小程序
2019/09/30 Javascript
Vue 解决通过this.$refs来获取DOM或者组件报错问题
2020/07/28 Javascript
Python实现的逻辑回归算法示例【附测试csv文件下载】
2018/12/28 Python
Python面向对象实现一个对象调用另一个对象操作示例
2019/04/08 Python
Python 使用 PyMysql、DBUtils 创建连接池提升性能
2019/08/14 Python
python3应用windows api对后台程序窗口及桌面截图并保存的方法
2019/08/27 Python
Python字符串格式化输出代码实例
2019/11/22 Python
python属于跨平台语言码
2020/06/09 Python
python 进程池pool使用详解
2020/10/15 Python
Python安装第三方库攻略(pip和Anaconda)
2020/10/15 Python
HTML5 Canvas实现360度全景图的示例代码
2018/01/29 HTML / CSS
日本热销NO.1胶原蛋白冻:Aishitoto爱希特多
2019/06/20 全球购物
铭立家具面试题
2012/12/06 面试题
优秀毕业生推荐信
2013/11/02 职场文书
《路旁的橡树》教学反思
2014/04/07 职场文书
群众路线领导班子四风对照检查材料
2014/09/27 职场文书
放假通知
2015/04/14 职场文书
2015年教研工作总结
2015/05/23 职场文书
历史名人教你十五个读书方法,赶快Get起来!
2019/07/18 职场文书
Redis5之后版本的高可用集群搭建的实现
2021/04/27 Redis
浅谈pytorch中的dropout的概率p
2021/05/27 Python
十大动画制作软件,Adobe产品上榜两款,第一是行业标准软件
2022/03/18 杂记
mysql 乱码 字符集latin1转UTF8
2022/04/19 MySQL