Python利用shelve模块设计简单数据库程序
欢迎访问我的网站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模块设计简单数据库程序相关推荐
- python shelve模块_Python中shelve模块的简单介绍(附示例)
本篇文章给大家带来的内容是关于Python中shelve模块的简单介绍(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. shelve:对象持久化的保存的模块,将对象保存到文件 ...
- python shelve模块_说说 Python 的 shelve 模块
利用 Python 的 shelve 模块, 可以将程序中需要保存的数据,以二进制放入 shelf 文件中.另一个程序就可以读取 shelf 文件,用于业务逻辑.也就是说 shelve 模块可以实现数 ...
- 用Tkinter打造自己的Python IDE开发工具(4)利用HP_tk模块设计自己的代码编辑器
用Tkinter打造自己的Python IDE开发工具(4)利用HP_tk模块设计自己的代码编辑器 HP_tk.py模块是小白量化第二代量化系统中的开发模块.其中HP_tk.py模块是小白量化系统GU ...
- 用Tkinter打造自己的Python IDE开发工具(5)利用HP_tka模块设计自己的中文代码编辑器
用Tkinter打造自己的Python IDE开发工具(5)利用HP_tka模块设计自己的中文代码编辑器 前面我们介绍了在Tkinter中使用exec()函数运行用户程序的方法.exec()采用多线程 ...
- Python之shelve模块详解
一.定义 Shelve是对象持久化保存方法,将对象保存到文件里面,缺省(即默认)的数据存储文件是二进制的. 二.用途 可以作为一个简单的数据存储方案. 三.用法 使用时,只需要使用open函数获取一个 ...
- Py:python利用easygui实现最简单GUI带你学习区块链技术的发展和由来
Py:python利用easygui实现最简单GUI带你学习区块链技术的发展和由来 目录 输出结果 实现代码 输出结果 实现代码 # -*- coding: utf-8 -*- ''' Created ...
- Python——利用pygame模块制作RPG游戏(一)
利用pygame模块制作RPG游戏(一) 需要用到的第三方库:pygame 一.构造游戏的基本框架 1.首先准备好相应的游戏素材:背景,人物动作图片,音乐,音效等. 图片均用png格式,音乐音效均用o ...
- Python使用cx_Oracle模块操作Oracle数据库详解
本文实例讲述了Python使用cx_Oracle模块操作Oracle数据库.分享给大家供大家参考,具体如下: ORACLE_SID参数,这个参数是操作系统中用到的,它是描述我们要默认连接的数据库实例, ...
- 计算机网络课程设计聊天,计算机网络课程设计-简单聊天程序.doc
计算机网络课程设计-简单聊天程序 黔南民族师范学院 计算机科学系 计算机网络课程设计报告 课题名称: 简单聊天程序 姓 名: 学 号: 专业班级: 系 (院): 计算机科学系 指导老师: 设计时间: ...
- Python盒子:模块、包和程序
Python盒子:模块.包和程序 命令行参数 test2.py import sys print('Program arguments:', sys.argv) D:\MyPython>pyth ...
最新文章
- python mac地址转换_Python MAC地址 获取,过滤,转换 Python MYSQL 数据获取,比较
- FPGA之道(48)跨时钟域问题
- CTFshow 反序列化 web262
- redis简单了解 二 (集群)
- VTK:Rendering之Rainbow
- 批量生成6位数字_分享一款可做各种流水号的条码生成软件
- halcon中面到面的距离_halcon学习笔记——(8)由标定板得到测量平面位姿-阿里云开发者社区...
- 某储云商城系统源码V1.782 绿色版
- error C2662
- Android笔记 activity生命周期 Tasks and back stack回退栈
- R 语言学习(二)—— 向量
- 北京大学生物信息学学习(6)隐含马尔可夫模型
- VGG16的10折交叉验证实现cifar10的分类(keras实现)
- HttpClient如何解决302重定向问题
- python打开txt文件
- Python爬取的数据存为json文件,并读取
- mac能不能做ppt?
- 怎样快速查询多个天天欧洲物流单号的在途信息
- redis中的save配置项
- HttpClient的POST请求提示302问题解决
热门文章
- 寻找中项和第k小元素c语言,寻找一个序列中第k小的元素——分治法
- mysql 添加实例_如何在多实例基础上再添加一个mysql的实例
- Java编程:普里姆算法(已知起点求最小生成树)
- JavaScript:对象转换为字符串、字符串转换为对象
- linux 的 swapper 进程不能sleep,深入理解perf报告中的swapper进程
- php无限级回复页面如何嵌套,php无限级评论嵌套实现代码
- Java配置文件读取写入通用类库:PropUtils 属性文件类
- bootstrap select2 动态从后台Ajax动态获取数据
- 我想我是适合独处的人
- 1018 锤子剪刀布