还没有写完准备弡上cpickle 还有字典
- #!/usr/bin/python
- #Filename: cpickle.py
- import cPickle as p
- import os
- shoplistfile="shoplist.data"
- storedlist={}
- def menu():
- running=True
- try:
- while running:
- try:
- f=file(shoplistfile)
- storedlist=p.load(f)
- command=raw_input("Please input command: ")
- if command=="help":
- help()
- elif command=="add":
- add(storedlist)
- elif command=="delete":
- delete(storedlist)
- elif command=="update":
- update(storedlist)
- elif command=="select":
- select(storedlist)
- elif command=="quit":
- running=False
- elif command=='show':
- show(storedlist)
- else:
- print "ERROR, please input help!"
- finally:
- f.close()
- else:
- print "Done"
- except EOFError:
- print "QUIT"
- except KeyboardInterrupt:
- print "Q"
- finally:
- print "DONE"
- def show(storedlist):
- print '-'*40
- for (k,v) in storedlist.items():
- print '%s \t'%k,v
- print '-'*40
- def add(storedlist):
- try:
- username=raw_input("Please input add username:")
- # print storedlist
- # print username
- if(storedlist.has_key(username)):
- print "Username Exist!!"
- return 0
- emailbox=raw_input("Please input add email:")
- storedlist[username]=emailbox
- except:
- print "err add"
- finally:
- write(storedlist)
- def select(storedlist):
- try:
- username=raw_input("Please input select username:")
- if storedlist.has_key(username):
- print storedlist[username]
- else:
- print 'Username not find!!'
- return 0
- except:
- print "err select"
- finally:
- write(storedlist)
- def delete(storedlist):
- try:
- username=raw_input("Please input delete username:")
- if storedlist.has_key(username):
- print storedlist[username]
- else:
- print 'Username not find!!'
- return 0
- storedlist.pop(username)
- except:
- print "err delete"
- finally:
- write(storedlist)
- def update(storedlist):
- try:
- #not key ?
- username=raw_input("Please input update username:")
- if storedlist.has_key(username):
- print storedlist[username]
- else:
- print 'Username not find!!'
- return 0
- emailbox=raw_input("Please input update email:")
- storedlist[username]=emailbox
- except:
- print "err update"
- finally:
- write(storedlist)
- def write(stored):
- f=file(shoplistfile,'w')
- p.dump(stored,f)
- f.close()
- def index():
- if os.path.exists(shoplistfile):
- menu()
- else:
- print 'Contacts not find!'
- print 'Create Contacts...'
- create_con()
- def create_con():
- shoplist={}
- try:
- f=file(shoplistfile,'w')
- p.dump(shoplist,f)
- except IOError:
- print 'find not file!!'
- finally:
- f.close()
- menu()
- def help():
- """
- ------------------------
- ==>>help
- ==>>add < username email >
- ==>>delete < username >
- ==>>update < username newemail >
- ==>>select < username >
- ==>>quit
- ------------------------"""
- print help.__doc__
- if __name__=='__main__':
- index()
练习字典,看简明的python后面有一个练习,根据cPickle 写一个通讯录,恶心下自己!
还没有写完准备弡上cpickle 还有字典的更多相关文章
- 前端性能测试工具 : dynaTrace Ajax (还没写完)
今天开始写这个工具, #什么是dynaTrace Ajax? 随着 jQuery.Dojo.YUI 等框架的兴起让构建 Web2.0 应用更加容易,但随之带来的定位等应用问题也越来越难,尤其是与性能相 ...
- XObject.java 对象还没写完,希望电脑不会丢失。坏笑,早点见。
/*面向对象强调的是对象, 面向过程强调的是功能行为,打开行为,关闭行为,执行行为,把多个行为封装成对象执行更强大的功能就是面向对象,是把多个函数, 多 个行为封装在一起,单一的函数执行对象的功能太困 ...
- 【creo】CREO5.0+VS2019配置(还没写完)
欢迎大家一起学习使用c++对CREO5.0二次开发. 第1步,建立开发目录:在E盘(或者其他盘)新建creo_cpp文件夹,文件夹中新建ABC_TOOLS用来存放我们开发的工具,CODE文件夹存放开发 ...
- HDU 4640 状态压缩DP 未写完
原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=4640 解题思路: 首先用一个简单的2^n*n的dp可以求出一个人访问一个给定状态的最小花费,因为这i个 ...
- webuploader 跨域上传demo(还没有写记录一下)
webuploader 跨域上传demo(还没有写记录一下)
- 写完代码就去吃饺子|The 10th Henan Polytechnic University Programming Contest
河南理工大学第十届校赛 很久没有组队打比赛了,好吧应该说很久没有写题了, 三个人一起玩果然比一个人玩有趣多了... 前100分钟过了4题,中途挂机100分钟也不知道什么原因,可能是因为到饭点太饿了?, ...
- 缓存服务,还未创建完缓存时, 需要更改图层名称、服务名称、数据源位置、mxd名称等
缓存服务,还未创建完缓存时, 需要更改图层名称.服务名称.数据源位置.mxd名称等.已经创建好的缓存还可以再用吗? 测试后可以, 注意:新服务相对旧服务,符号样式没有改变,切片方案没有变化. 测试步骤 ...
- 用putty玩linux的时候由于以前用window 习惯写完东西按一下ctrl+s 保存
问题描述:用putty玩linux的时候由于以前用window 习惯写完东西按一下ctrl+s 保存,但是在putty一按下就不能再输入了.后来查找到:ctrl+s 是putty的一个命令大概是这样子 ...
- 不写完不让回家的JQuery的事件与动画
在这看不见太阳的小黑屋里,苦逼的一天又开始了 好了闲话我也就不扯了,接下来我就来说说我对jQuery事件和动画的理解吧!!! 还是得再扯两句,我们敬爱的,Y老师讲完了,jQuery事件和动画,对着我们 ...
随机推荐
- Keil 报错汇总
main.c(6): warning: #1-D: last line of file ends without a newline 解决:main.c 最后一行加回车就可以了. keil中文注释出 ...
- 1.3.4、CDH 搭建Hadoop在安装之前(端口---Impala使用的端口)
Impala使用的端口 Impala使用下表中列出的TCP端口.在部署Impala之前,请确保在每个系统上打开这些端口. Component Service Port Access Requireme ...
- ROW_NUMBER() OVER(PARTITION BY ORDER BY )RN 只选一行
') ; SELECT DISTINCT PEGGED_SO_ID,PEGGED_SO_LINE_ID ,ITEM_ID ,QUANTITY ,LOCATION ,SITEID ,ROW_NUMBER ...
- 调css时候,设置margin-left没有效果
调css时候,如果设置margin-left没有效果,可能是span不是块元素.设置display:block;即可.
- C#中与C++中的 LPWSTR(wchar_t *) 对应的类型
1.设置 CharSet = CharSet.Unicode [DllImport("test.dll", EntryPoint = "sum()", Char ...
- python--第七天总结
引言 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发“更快更好更强...” [面向对象编程(Obj ...
- cdh5.13.1 hadoop hdfs HA模式无法启动
经过观察日志发现,JN三个节点启动正常,只有NN节点启动时提示JN节点没有格式化 停止HDFS下面所有服务 先启动JN节点 然后启动一个NN节点,观察三个JN节点日志 发现其中一个节点的日志正常,没有 ...
- 第三章 列表(b)无序列表
- 高级测试岗位面试题---MARK
直接手写一个python类 直接手写一个构造函数 紧接着上面的代码,直接手写,补充完整代码,要求对列表中的人进行排序,并筛选出分数大于80的人的名单,组成一个新的列表显示出来. class Perso ...
- 关于set_output_delay与set_input_delay概念与用法
一. 这两条约束语句都是针对板级延时而言的. 语句中必须的有是,时钟与port. 二. set_input_delay 用于数据输入端口,调节数据输入与时钟输入到来的相位关系. 当FPGA外部送 ...