改进版通讯录

调用了 cPickle 模块,更可靠了。



import
os import cPickle #主函数 while(1):#一直运行 people_file='E:\\test.txt' people={} first=raw_input('Enter 1 for input name,Enter 2 for find name,Enter 3 for delect name:') if(first=='1'):#add name_add=raw_input("Enter name you want to add:") kind_add=raw_input("Enter kind you want to add:") number_add=raw_input("Enter number you want to add:") E_mail_add=raw_input("Enter E_mail you want to add:") f=file(people_file,'r')# people=cPickle.load(f) people[name_add]=kind_add,number_add,E_mail_add #再写入字典 f.close() f=file(people_file,'w')# cPickle.dump(people,f)#用cpickle函数将people存入f f.close() # for (key,value) in people.items(): # f.write('%s:%s\n'%(key,value))#将字典写入txt # f.close() elif(first=='2'):#find find_name=raw_input("Enter name you want to find:") flag=0 f=open(people_file,'r')#以只读模式打开文件 # lines=dict(line.strip().split(':') for line in f if line)#将文件内容转换为字典模式,怎么个流程暂时不懂 lines=cPickle.load(f) for (key,value) in lines.items(): print '%s,%s'%(key,value) if(key==find_name): print lines[find_name] f.close() flag=1 break if(flag==0): print 'can not find this people' elif(first=='3'):#delect 先读出,再删除,再重写 del_name=raw_input("Enter name you want to delect:") f=open(people_file,'r')#以只读模式打开文件 # lines=dict(line.strip().split(':') for line in f if line)#将文件内容转换为字典模式,怎么个流程暂时不懂 lines=cPickle.load(f) f.close()#关闭文件 for (key,value) in lines.items(): if(key==del_name): del lines[del_name] print 'delect:',del_name f=open(people_file,'w')#以覆盖模式打开文件 for (key,value) in lines.items(): f.write('%s:%s\n'%(key,value))#将字典写入txt print '%s:%s'%(key,value) f.close() #联系人信息删除函数

 

posted @ 2018-03-19 18:45  木易不觉  阅读(96)  评论(0)    收藏  举报