蛋疼写的python 通讯录管理
我以后啊,再也不敢把文本界面的程序模仿成图形界面的了,因为需要处理的东西太多了 ,所以我以后写的程序,尽量把菜单写得简单一点,至于图形界面,就留给别人了
现在这个程序的菜单还是有bug 大家凑合着用吧 ,但是程序对于文件的读取和写入 是没有问题的
以下是两个程序,
名为 address_book.py
1 #!/usr/bin/python3 2 import os,sys 3 os.chdir("./") #把读取文件的目录设置在当前目录 4 sys.path.append('./') #把读取模块的目录设置为当前目录 5 import tcstory #导入我的模块 6 NUMBER=-4 7 user_list=[] 8 class People: 9 count=0 10 def __init__(self,g_name='None',g_telephone='None',g_email='None'): 11 self.name=g_name 12 self.telephone=g_telephone 13 self.email=g_email 14 People.count+=1 15 def menu(): 16 print("\t\t\t 欢迎来到通讯录") 17 print("\t\t\t n:下一页 b:上一页") 18 print('\t\t\tc:修改 s:保存 q:退出') 19 def display(choice): 20 global NUMBER,user_list 21 os.system("clear") 22 flag=1 23 if choice=='n': 24 menu() 25 NUMBER+=4 26 for i in range(4): 27 try: 28 print('\t\t\t'+str(NUMBER+i)+':'+user_list[NUMBER+i].name,user_list[NUMBER+i].telephone,user_list[NUMBER+i].email) 29 flag=0 30 except IndexError: 31 if flag: 32 NUMBER-=4 33 flag=1 34 return 35 elif choice=='b': 36 menu() 37 if People.count<=4:return 38 NUMBER-=4 39 if NUMBER<0: 40 NUMBER=-4 41 return 42 for i in range(4): 43 print('\t\t\t'+str(NUMBER+i)+':'+user_list[NUMBER+i].name,user_list[NUMBER+i].telephone,user_list[NUMBER+i].email) 44 elif choice=='q': 45 exit() 46 elif choice=='c': 47 os.system('clear') 48 modify() 49 elif choice=='s': 50 with open('info.txt','w+') as data: 51 for each in user_list: 52 data.write(each.name+' ') 53 data.write(each.telephone+' ') 54 data.write(each.email+'\n') #由于write方法不会自动添加回车键,所以我自己添加 55 exit() 56 57 else: 58 print("\t\t\t未知的输入") 59 def load_info(): 60 global user_list 61 try: 62 with open('info.txt','r+') as data: 63 for f in data: 64 temp=People() 65 temp.name,temp.telephone,temp.email=f.split(' ') 66 temp.email=temp.email.replace('\n','') #因为从文件读取的每一行的最后都有一个回车键,所以这里把他去掉: 67 user_list.append(temp) 68 except IOError as ioerr: 69 print("File error:"+str(ioerr)) 70 exit() 71 def modify(): 72 os.system('clear') 73 global user_list 74 print("\t\t\t1.新增 2.修改 3.删除") 75 print("\t\t\tq:离开") 76 choice=input("\t\t\t请输入您的选择: ") 77 if choice=='1': 78 tcstory.add(user_list) 79 elif choice=='2': 80 tcstory.change(user_list) 81 elif choice=='3': 82 tcstory.delete(user_list) 83 else: 84 os.system('clear') 85 86 def main(): 87 global user_list 88 choice='n' 89 load_info() 90 while True: 91 display(choice) 92 choice=input('\n\t\t\t请输入你的选择') 93 if __name__=='__main__':main()
以下是需要到的模块 名字为 tcstory.py
1 #!/usr/bin/python3 2 import os,sys 3 os.chdir("./") 4 sys.path.append('./') 5 from address_book import People 6 def add(_list): 7 temp=People() 8 temp.name=input('\t\t\t请输入名字: ') 9 temp.telephone=input('\t\t\t请输入手机号码: ') 10 temp.email=input('\t\t\t请输入电子邮件: ') 11 _list.append(temp) 12 def change(_list): 13 name=input('\t\t\t请输入姓名: ') 14 for each in _list: 15 if name==each.name: 16 flag=1 17 else:flag=0 18 if flag: 19 each.telephone=input('\t\t\t请输入新的手机号码: ') 20 each.email=input('\t\t\t请输入新的电子邮箱: ') 21 print('\t\t\tDone.') 22 else:print('\t\t\t找不到') 23 def delete(_list): 24 name=input('\t\t\t请输入姓名: ') 25 for each in _list: 26 if name==each.name: 27 flag=1 28 break 29 else:flag=0 30 if flag: 31 _list.remove(each) 32 print('\t\t\tDone.') 33 else:print("\t\t\t找不到")