欢迎访问我的网站omegaxyz.com
利用shelve模块写数据库文件在程序关闭时仍然能存储之前的数据。

将所有内容都放到函数中会让程序更加结构化。
主程序放在main函数中,只有在if__name__==’main’条件成立的时候才被调用
意味着可以在其他程序中将这个程序作为模块导入,然后调用main函数。

我在main函数中打开数据库(shelf),然后将其作为参数传给另外需要它的函数。
我也可以使用全局变量,毕竟这个程序很小。不过,在大多数情况下最好避免用全局变
量,除非有充足的理由要使用它。

我使用try/finally确保数据库能够正确关闭。()我们永远不知道什么时候会出错程序会抛出异常)。如果程序在没有正确关闭数据库的情况下终止,那么,数据库文件可能被损坏了,这样的数据文件是毫无用处的。

下面是整个数据库文件代码:

#©OmegaXYZ
import shelvedef store_person(db):"Query user for data and store it in the shelf object"pid = input("Enter unique ID number: ")person = {}person['name'] = input("input your name: ")person['age'] = input("input your age: ")person['phone'] = input("Enter your phone number: ")db[pid] = persondef lookup_person(db):"Query user for ID and desired field. and fetch the corresponding data from the shelf object"pid = input("Enter ID number")field = input("What would you like to know?  (name, age, phone)")field = field.strip().lower()print(field.capitalize() + ':' + db[pid][field])def print_help():print("The available commands are: ")print("store : Stores information about a person")print("lookup : Look up a person from ID number")print("quit : Save changes and exit")print("? : Print this message")def enter_command():cmd = input("Enter command (? for help): ")cmd = cmd.strip().lower()return cmddef main():database = shelve.open('E:\\Temporary\\database.dat')# You may want to change this nametry:while True:cmd = enter_command()if cmd == 'store':store_person(database)elif cmd == 'lookup':lookup_person(database)elif cmd == '?':print_help()elif cmd == 'quit':returnfinally:database.close()if __name__ == '__main__':main()

Python利用shelve模块设计简单数据库程序相关推荐

  1. python shelve模块_Python中shelve模块的简单介绍(附示例)

    本篇文章给大家带来的内容是关于Python中shelve模块的简单介绍(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. shelve:对象持久化的保存的模块,将对象保存到文件 ...

  2. python shelve模块_说说 Python 的 shelve 模块

    利用 Python 的 shelve 模块, 可以将程序中需要保存的数据,以二进制放入 shelf 文件中.另一个程序就可以读取 shelf 文件,用于业务逻辑.也就是说 shelve 模块可以实现数 ...

  3. 用Tkinter打造自己的Python IDE开发工具(4)利用HP_tk模块设计自己的代码编辑器

    用Tkinter打造自己的Python IDE开发工具(4)利用HP_tk模块设计自己的代码编辑器 HP_tk.py模块是小白量化第二代量化系统中的开发模块.其中HP_tk.py模块是小白量化系统GU ...

  4. 用Tkinter打造自己的Python IDE开发工具(5)利用HP_tka模块设计自己的中文代码编辑器

    用Tkinter打造自己的Python IDE开发工具(5)利用HP_tka模块设计自己的中文代码编辑器 前面我们介绍了在Tkinter中使用exec()函数运行用户程序的方法.exec()采用多线程 ...

  5. Python之shelve模块详解

    一.定义 Shelve是对象持久化保存方法,将对象保存到文件里面,缺省(即默认)的数据存储文件是二进制的. 二.用途 可以作为一个简单的数据存储方案. 三.用法 使用时,只需要使用open函数获取一个 ...

  6. Py:python利用easygui实现最简单GUI带你学习区块链技术的发展和由来

    Py:python利用easygui实现最简单GUI带你学习区块链技术的发展和由来 目录 输出结果 实现代码 输出结果 实现代码 # -*- coding: utf-8 -*- ''' Created ...

  7. Python——利用pygame模块制作RPG游戏(一)

    利用pygame模块制作RPG游戏(一) 需要用到的第三方库:pygame 一.构造游戏的基本框架 1.首先准备好相应的游戏素材:背景,人物动作图片,音乐,音效等. 图片均用png格式,音乐音效均用o ...

  8. Python使用cx_Oracle模块操作Oracle数据库详解

    本文实例讲述了Python使用cx_Oracle模块操作Oracle数据库.分享给大家供大家参考,具体如下: ORACLE_SID参数,这个参数是操作系统中用到的,它是描述我们要默认连接的数据库实例, ...

  9. 计算机网络课程设计聊天,计算机网络课程设计-简单聊天程序.doc

    计算机网络课程设计-简单聊天程序 黔南民族师范学院 计算机科学系 计算机网络课程设计报告 课题名称: 简单聊天程序 姓 名: 学 号: 专业班级: 系 (院): 计算机科学系 指导老师: 设计时间: ...

  10. Python盒子:模块、包和程序

    Python盒子:模块.包和程序 命令行参数 test2.py import sys print('Program arguments:', sys.argv) D:\MyPython>pyth ...

最新文章

  1. python mac地址转换_Python MAC地址 获取,过滤,转换 Python MYSQL 数据获取,比较
  2. FPGA之道(48)跨时钟域问题
  3. CTFshow 反序列化 web262
  4. redis简单了解 二 (集群)
  5. VTK:Rendering之Rainbow
  6. 批量生成6位数字_分享一款可做各种流水号的条码生成软件
  7. halcon中面到面的距离_halcon学习笔记——(8)由标定板得到测量平面位姿-阿里云开发者社区...
  8. 某储云商城系统源码V1.782 绿色版
  9. error C2662
  10. Android笔记 activity生命周期 Tasks and back stack回退栈
  11. R 语言学习(二)—— 向量
  12. 北京大学生物信息学学习(6)隐含马尔可夫模型
  13. VGG16的10折交叉验证实现cifar10的分类(keras实现)
  14. HttpClient如何解决302重定向问题
  15. python打开txt文件
  16. Python爬取的数据存为json文件,并读取
  17. mac能不能做ppt?
  18. 怎样快速查询多个天天欧洲物流单号的在途信息
  19. redis中的save配置项
  20. HttpClient的POST请求提示302问题解决

热门文章

  1. 寻找中项和第k小元素c语言,寻找一个序列中第k小的元素——分治法
  2. mysql 添加实例_如何在多实例基础上再添加一个mysql的实例
  3. Java编程:普里姆算法(已知起点求最小生成树)
  4. JavaScript:对象转换为字符串、字符串转换为对象
  5. linux 的 swapper 进程不能sleep,深入理解perf报告中的swapper进程
  6. php无限级回复页面如何嵌套,php无限级评论嵌套实现代码
  7. Java配置文件读取写入通用类库:PropUtils 属性文件类
  8. bootstrap select2 动态从后台Ajax动态获取数据
  9. 我想我是适合独处的人
  10. 1018 锤子剪刀布