我以后啊,再也不敢把文本界面的程序模仿成图形界面的了,因为需要处理的东西太多了 ,所以我以后写的程序,尽量把菜单写得简单一点,至于图形界面,就留给别人了
现在这个程序的菜单还是有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=010 def __init__(self,g_name='None',g_telephone='None',g_email='None'):11 self.name=g_name12 self.telephone=g_telephone13 self.email=g_email14 People.count+=115 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_list21 os.system("clear")22 flag=123 if choice=='n':24 menu()25 NUMBER+=426 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=030 except IndexError:31 if flag:32 NUMBER-=433 flag=134 return35 elif choice=='b':36 menu()
37 if People.count<=4:return38 NUMBER-=439 if NUMBER<0:40 NUMBER=-441 return42 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_list61 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_list74 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_list88 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=117 else:flag=018 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=128 break29 else:flag=030 if flag:31 _list.remove(each)32 print('\t\t\tDone.')33 else:print("\t\t\t找不到")