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删除nginx缓存文件示例(python文件操作)
Mar 26 Python
Python生成随机MAC地址
Mar 10 Python
Python常见加密模块用法分析【MD5,sha,crypt模块】
May 24 Python
pandas修改DataFrame列名的方法
Apr 08 Python
Python3实现的爬虫爬取数据并存入mysql数据库操作示例
Jun 06 Python
python cs架构实现简单文件传输
Mar 20 Python
Python切片操作去除字符串首尾的空格
Apr 22 Python
基于logstash实现日志文件同步elasticsearch
Aug 06 Python
Python使用pycharm导入pymysql教程
Sep 16 Python
Python实现PS滤镜中的USM锐化效果
Dec 04 Python
python3列表删除大量重复元素remove()方法的问题详解
Jan 04 Python
python unittest单元测试的步骤分析
Aug 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&&mysql)二
2006/10/09 PHP
php&java(三)
2006/10/09 PHP
图文介绍PHP添加Redis模块及连接
2015/07/28 PHP
PHP直接修改表内容DataGrid功能实现代码
2015/09/24 PHP
详解yii2实现分库分表的方案与思路
2017/02/03 PHP
jQuery入门问答 整理的几个常见的初学者问题
2010/02/22 Javascript
window.location.hash 属性使用说明
2010/03/20 Javascript
javascript处理table表格的代码
2010/12/06 Javascript
js使用html()或text()方法获取设置p标签的显示的值
2014/08/01 Javascript
node.js中的buffer.length方法使用说明
2014/12/14 Javascript
JavaScript实现防止网页被嵌入Frame框架的代码分享
2014/12/29 Javascript
jQuery控制网页打印指定区域的方法
2015/04/07 Javascript
javascript文件加载管理简单实现方法
2015/07/25 Javascript
网页中JS函数自动执行常用三种方法
2016/03/30 Javascript
jquery.validate[.unobtrusive]和Bootstrap实现tooltip错误提示问题分析
2016/10/30 Javascript
Bootstrap中定制LESS-颜色及导航条(推荐)
2016/11/21 Javascript
浅谈JavaScript的自动垃圾收集机制
2016/12/15 Javascript
js中DOM事件绑定分析
2018/03/18 Javascript
简化版的vue-router实现思路详解
2018/10/19 Javascript
vue 获取及修改store.js里的公共变量实例
2019/11/06 Javascript
跟老齐学Python之字典,你还记得吗?
2014/09/20 Python
Python XML RPC服务器端和客户端实例
2014/11/22 Python
用Python脚本来删除指定容量以上的文件的教程
2015/05/04 Python
python生成1行四列全2矩阵的方法
2018/08/04 Python
基于python实现检索标记敏感词并输出
2020/05/07 Python
使用HTML5捕捉音频与视频信息概述及实例
2018/08/22 HTML / CSS
详解html5页面 rem 布局适配方法
2018/01/12 HTML / CSS
Html5 new XMLHttpRequest()监听附件上传进度
2021/01/14 HTML / CSS
类的返射机制中的包及核心类
2016/09/12 面试题
食堂个人先进事迹
2014/01/22 职场文书
服务承诺书范文
2014/05/19 职场文书
港澳通行证委托书怎么写
2014/08/02 职场文书
欢迎新生标语
2014/10/06 职场文书
HTML+VUE分页实现炫酷物联网大屏功能
2021/05/27 Vue.js
Java数据开发辅助工具Docker与普通程序使用方法
2021/09/15 Java/Android
python内置模块之上下文管理contextlib
2022/06/14 Python