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利用datetime模块计算时间差
Aug 04 Python
Python 实现 贪吃蛇大作战 代码分享
Sep 07 Python
python生成lmdb格式的文件实例
Nov 08 Python
在PyCharm导航区中打开多个Project的关闭方法
Jan 17 Python
简单了解python的break、continue、pass
Jul 08 Python
Python制作微信好友背景墙教程(附完整代码)
Jul 17 Python
详解PyTorch中Tensor的高阶操作
Aug 18 Python
python getpass模块用法及实例详解
Oct 07 Python
python 按钮点击关闭窗口的实现
Mar 04 Python
Windows 下python3.8环境安装教程图文详解
Mar 11 Python
Python爬虫抓取论坛关键字过程解析
Oct 19 Python
python实现经纬度采样的示例代码
Dec 10 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
yii实现级联下拉菜单的方法
2014/07/31 PHP
PHP中使用substr()截取字符串出现中文乱码问题该怎么办
2015/10/21 PHP
php在数据库抽象层简单使用PDO的方法
2015/11/03 PHP
php实现文件预览功能
2017/05/23 PHP
IE6-8中Date不支持toISOString的修复方法
2014/05/04 Javascript
JS仿Windows开机启动Loading进度条的方法
2015/02/26 Javascript
javascript控制图片播放的实现代码
2020/07/29 Javascript
妙用Bootstrap的 popover插件实现校验表单提示功能
2016/08/29 Javascript
AngularJS Select(选择框)使用详解
2017/01/18 Javascript
jQuery实现可兼容IE6的滚动监听功能
2017/09/20 jQuery
element-ui 关于获取select 的label值方法
2018/08/24 Javascript
vue项目中跳转到外部链接的实例讲解
2018/09/20 Javascript
使用jQuery动态设置单选框的选中效果
2018/12/06 jQuery
Vue清除定时器setInterval优化方案分享
2020/07/21 Javascript
微信小程序实现下拉加载更多商品
2020/12/29 Javascript
[44:10]2018DOTA2亚洲邀请赛 4.5 淘汰赛 EG vs VP 第一场
2018/04/06 DOTA
[49:17]DOTA2-DPC中国联赛 正赛 Phoenix vs Dynasty BO3 第三场 1月26日
2021/03/11 DOTA
Python切片知识解析
2016/03/06 Python
TensorFlow实现MLP多层感知机模型
2018/03/09 Python
在Python中关于使用os模块遍历目录的实现方法
2019/01/03 Python
Python 中包/模块的 `import` 操作代码
2019/04/22 Python
如何用Python徒手写线性回归
2021/01/25 Python
西班牙英格列斯百货官网:El Corte Inglés
2016/09/25 全球购物
英国景点门票网站:attractiontix
2019/08/27 全球购物
澳大利亚最便宜的网上药房:Chemist Warehouse
2020/01/30 全球购物
和平主题的演讲稿
2014/01/12 职场文书
家长会主持词开场白
2014/03/18 职场文书
人事任命书格式
2014/06/05 职场文书
大学课外活动总结
2014/07/09 职场文书
2015年端午节活动总结
2015/02/11 职场文书
2015年房产经纪人工作总结
2015/05/15 职场文书
2016年寒假政治学习心得体会
2015/10/09 职场文书
2019年怎样才能撰写出优秀的自荐信
2019/03/25 职场文书
PHP设计模式(观察者模式)
2021/07/07 PHP
python 实现图片特效处理
2022/04/03 Python
canvas 中如何实现物体的框选
2022/08/05 Javascript