python 利用Shelve实现在命令行下的数据自动管理
2017-04-20 23:33
483 查看
#coding = utf-8 #!/usr/bin/env python import shelve class MySheve: cmd = {'Add':'AddData','Delete':'DeleteData','Modify':'ModifyData','Find':'FindByName', 'Show':'ShowData','Help':'Help'} def __init__(self, fileName): self.db = {} self.key = 1 self.fileName = fileName; def __OpenShelve(self): self.db=shelve.open(self.fileName,'c') def __CloseShelve(self): self.db.close() def AddData(self): self.__OpenShelve() person = {} person['name'] = raw_input('Name: ') person['sex']=raw_input('Sex: ') person['age']=raw_input('age: ') self.db[str(self.key)] = person self.key += 1 self.__CloseShelve() def FindByName(self): self.__OpenShelve() name = raw_input('Input who you want to find?>') res = [] for key,value in self.db.iteritems(): if value['name'] == name: res.append(key) if not res: print 'no this record' self.__CloseShelve() return res def ModifyData(self): keys = self.FindByName() if not keys : print 'not find record' print 'find follow record' self.__OpenShelve() for key in keys: print key,self.db[key] key =raw_input('which record you will modify? >') person = {} person['name'] = raw_input('Name: ') person['sex']=raw_input('Sex: ') person['age']=raw_input('age: ') self.db[key]=person self.__CloseShelve() def DeleteData(self): keys = self.FindByName() if not keys : print 'not find record' print 'find follow record' self.__OpenShelve() for key in keys: print key,self.db[key] key =raw_input('which record you will delete? >') del self.db[key] self.__CloseShelve() return None def ShowData(self): self.__OpenShelve() for key,value in self.db.iteritems(): print key,value self.__CloseShelve() def Help(self): print 'this system have follow operation:' print 'help you can which operation you can use and how to use' print 'Add you can add a data to your database' print 'Delete you can delete a data specified by name' print 'Modify you can modify a data specified by name' print 'Find you can find a data in your database' print 'Exit Exit system' def CmdProc(self): while(True): cmd_key = raw_input('cmd > ') if cmd_key in self.cmd.keys(): method=getattr(self,self.cmd[cmd_key]) method() else: print 'cmd your input is invalid,please input again!' if __name__ == '__main__': db = MySheve('123') db.CmdProc()
相关文章推荐
- 一个通用的单元测试框架的思考和设计06-实现篇-自动管理测试数据-如何临时关闭数据外键约束
- 一个通用的单元测试框架的思考和设计04-实现篇-自动管理测试数据
- 原来利用SVN的钩子函数可以实现自动的版本更新管理
- 利用Python绘制MySQL数据图实现数据可视化
- 数据挖掘(Python)——利用sklearn进行数据挖掘,实现算法:svm、knn、C5.0、NaiveBayes
- 利用ORACLE存储过程与JOB结合实现对数据表自动备份(用循环实现)
- 在Java中利用动态代理实现数据库连接与事务的自动管理
- 利用Python实现分布于各工作空间中的分幅数据合并
- python requests 自动管理cookie, session保持连接,抓取数据后结束
- Python实现Tab自动补全和历史命令管理的方法
- 利用批处理及计划任务实现服务器间的数据自动备份
- 利用AT91 SARM8260 USART mulit_Drop mode 实现数据地址自动切换
- ORACLE 中,数据的id号自动生成,利用触发器的实现
- 在Java中利用动态代理实现数据库连接与事务的自动管理
- python requests 自动管理 cookie 。 get后进行post发送数据---》最简单的刷票
- 利用SUS实现自动补丁管理
- 利用bat批处理调用Exp、Imp自动实现Oracle数据库用户数据同步
- 利用ORACLE存储过程与JOB结合实现对数据表自动备份
- 利用反射实现ASP.NET控件和数据实体之间的双向绑定,并且在客户端自动验证输入的内容是否合法
- 利用python和httpwatch实现自动监控网页