python 文件保存信息
1 # 用来存储名片的列表 2 card_infors = [] 3 4 5 def print_menu(): 6 # 1. 打印功能提示 7 print("=" * 50) 8 print(" 名片管理系统") 9 print("1. 增加一个新名片") 10 print("2. 删除一个名称") 11 print("3. 修改一个名片") 12 print("4. 查询一个名片") 13 print("5. 显示所有名片") 14 print("6. 保存信息") 15 print("7. 退出系统") 16 print("=" * 50) 17 18 19 def add_new_card_infor(): 20 """完成文档输入:""" 21 new_name = input("请输入新的名字:") 22 new_qq = input("请输入新的QQ:") 23 new_weixin = input("请输入新的微信:") 24 new_addr = input("请输入地址:") 25 26 # 定义一个新的字典,用来存储新的名片 27 new_infor = {} 28 new_infor['name'] = new_name 29 new_infor['qq'] = new_qq 30 new_infor["weixin"] = new_weixin 31 new_infor['addr'] = new_addr 32 global card_infors 33 card_infors.append(new_infor) 34 35 36 def find_card_infor(): 37 find_name = input("请输入要查找的姓名:") 38 39 find_flag = 0 # 默认没有找到 40 41 global card_infors 42 for temp in card_infors: 43 if find_name == temp["name"]: 44 print("%s\t%s\t%s\t%s" % (temp['name'], temp['qq'], temp['weixin'], temp['addr'])) 45 find_flag = 1 46 break 47 if find_flag == 0: 48 print("查无此人") 49 50 51 def show_all_infor(): 52 """显示所有信息""" 53 print("姓名\tQQ\t微信\t住址") 54 global card_infors 55 for temp in card_infors: 56 # print(temp) 57 print("%s\t%s\t%s\t%s" % (temp['name'], temp['qq'], temp['weixin'], temp['addr'])) 58 59 60 def del_card_infor(): 61 del_name = input("请输入要查找的姓名:") 62 find_flag = 0 # 默认没找到 63 64 global card_infors 65 for temp in card_infors: 66 if del_name == temp["name"]: 67 card_infors.remove(temp) 68 find_flag = 1 69 show_all_infor() 70 break 71 if find_flag == 0: 72 print("查无此人") 73 74 75 def del_modify_infor(): 76 modify_name = input("请输入要修改信息的名称:") 77 find_flag = 0 78 79 global card_infors 80 for temp in card_infors: 81 if modify_name == temp["name"]: 82 modify_content = input("请输入要修改的信息,如name,qq,weixin,addr等:") 83 for name in temp.keys(): 84 print("+" * 50) 85 print(temp.keys()) 86 print("+" * 50) 87 print(name) 88 if modify_content == name: 89 modify_value = input("请输入要修改的值:") 90 temp[name] = modify_value 91 show_all_infor() 92 find_flag = 1 93 break 94 95 if find_flag == 0: 96 print("查无此人") 97 98 def save_2_file(): 99 """把已经添加的信息保存到指定文件中""" 100 f = open("backup.data","w") #data是自己定义的格式 101 f.write(str(card_infors)) 102 f.close() 103 104 # 加载之前数据 105 def load_infor(): 106 f = open("backup.data") 107 108 global card_infors # 在局部变量中修改全局变量时使用:global 109 card_infors = eval(f.read()) #eval恢复数据的原始模式,即list模式 110 111 f.close() 112 113 114 def main(): 115 """完成对整个程序得控制""" 116 117 #恢复(加载)之前的数据到程序中 118 load_infor() 119 120 print_menu() 121 while True: 122 # 2. 获取用户的输入 123 num = int(input("请输入操作序号:")) 124 125 # 3. 根据用户的数据执行相应的功能: 126 if num == 1: 127 add_new_card_infor() 128 elif num == 2: 129 del_card_infor() 130 elif num == 3: 131 del_modify_infor() 132 elif num == 4: 133 find_card_infor() 134 elif num == 5: 135 show_all_infor() 136 elif num == 6: 137 save_2_file() 138 elif num == 7: 139 break 140 else: 141 print("输入有误,请重新输入:") 142 143 144 if __name__ == "__main__": 145 main() 146 147 # 调用主函数