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 # 调用主函数

 

posted @ 2018-07-22 20:11  饭桶大叔  阅读(1861)  评论(0编辑  收藏  举报