Python 名片管理系统(文件版,可存档读档)

相比于函数版的程序,文件版增加了存档读档操作
函数版的可以参考Python名片管理系统(列表、字典和函数的综合应用)

以下是新增部分的代码(不包括调用)

#存档
def save_2_file():f = open("save.data","w")f.write(str((card_infors)))f.close()print("保存成功!")print("=====================")#加载数据函数
#如果没有save.data文件,啥都不做,就等存档创建
def lode_data():global card_inforstry:    f = open("save.data")card_infors = eval(f.read())f.close()except Exception:pass

下面是完整版的程序,可直接使用!

#coding=utf-8
#系统的主要功能
def print_menu():print("=====欢迎来到名片管理系统!以下为主要功能!=====")print("1:增加一个新的名片")print("2:删除一个名片")print("3:修改一个名片")print("4:查找一个名片")print("5:显示所有名片")print("6:保存信息")print("7:退出系统")print("="*50)
#添加名片函数
def add_new_card_infor():print("="*50)new_name = input("请输入姓名:")new_qq = input("请输入QQ:")new_weixin = input("请输入微信:")new_addr = input("请输入地址:")#定义一个空的字典,用来存储新增加的名片new_infor={}new_infor['name'] = new_namenew_infor['qq'] = new_qqnew_infor['weixin'] = new_weixinnew_infor['addr'] = new_addr#把字典添加到列表中global card_inforscard_infors.append(new_infor)print("=====================")
#删除名片函数
def del_card_infor():print("="*50)del_name = input("请输入需要删除的名字:")del_flag = 0for temp in card_infors:if del_name == temp['name']:card_infors.remove(temp)del_flag = 1print("删除成功!")print("==================")breakif del_flag == 0:print("没有这个人!")print("==================")
#修改名片函数
def modify_card_infor():print("="*50)modify_name = input("请输入要修改的人的姓名:")find_flag = 0 #默认表示没有找到modify_flag = 0  #判断是否修改成功,默认修改失败sign = 0for temp in card_infors:sign+=1if modify_name == temp["name"]:find_flag = 1print("=====进入修改系统,功能如下=====")print("11.修改姓名")print("22.修改QQ")print("33.修改weixin")print("44.修改地址")print("55.退出修改系统")print("="*20)while True:num2 = input("修改功能:请输入你要修改的信息的编号:")if num2==11:card_infors[sign-1]["name"] = input("请输入您要修改的正确姓名:")modify_flag = 1elif num2==22:card_infors[sign-1]["qq"] = int(input("请输入您要修改的正确QQ:"))modify_flag = 1elif num2==33:card_infors[sign-1]["weixin"] = input("请输入您要修改的正确weixin:")modify_flag = 1elif num2==44:card_infors[sign-1]["addr"] = input("请输入您要修改的正确地址:")modify_flag = 1elif num2==55:print("退出修改系统,成功返回主菜单!")breakelse:print("输入有误,请重新输入:")if modify_flag == 1:print("修改成功!")print("%s\t%s\t%s\t%s"%(temp['name'],temp['qq'],temp['weixin'],temp['addr']))else:print("找不到这个人!将要返回主菜单!")print("="*50)
#查找名片函数
def find_card_infor():print("="*50)#glebal card_inforsfind_name = input("请输入需要查找的名字:")find_flag = 0 #默认表示没有找到for temp in card_infors:if find_name == temp['name']:print("%s\t%s\t%s\t%s"%(temp['name'],temp['qq'],temp['weixin'],temp['addr']))find_flag = 1print("=====================")breakif find_flag == 0:print("没有这个人!")print("=====================")
#显示所有名片
def shou_all_infor():print("姓名\tQQ\t微信\t住址")for temp in card_infors:print("%s\t%s\t%s\t%s"%(temp['name'],temp['qq'],temp['weixin'],temp['addr']))#存档
def save_2_file():f = open("save.data","w")f.write(str((card_infors)))f.close()print("保存成功!")print("=====================")#加载数据函数
#如果没有save.data文件,啥都不做,就等存档创建
def lode_data():global card_inforstry:    f = open("save.data")card_infors = eval(f.read())f.close()except Exception:passcard_infors = []  #定义列表,用来存储名片
print_menu()      #打印功能列表#下面开始进入主菜单,执行功能
#while True的作用是保证系统执行完一个操作之后不会自动退出
def main():#加载数据函数lode_data()while True:num = int(input("主菜单:请输入要执行的功能序号:"))if num == 1:add_new_card_infor()elif num == 2:del_card_infor()elif num == 3:modify_card_infor()elif num == 4:find_card_infor()elif num == 5:shou_all_infor()elif num == 6:save_2_file()elif num == 7:print("谢谢使用,再见!")breakelse:print("你输入的有错误,请重新输入!")print("="*50)
main()

Python 名片管理系统(文件版,可存档读档)相关推荐

  1. day 5 名片管理系统-文件版

    1.添加__name__ == '__main__' if __name__ == "__main__": #添加__name__变量#调用主函数main() 2.添加6功能,保存 ...

  2. Python学员管理系统进阶版

    Python学员管理系统进阶版 整合基础,使用面向对象的方式做学员管理系统 文章目录 Python学员管理系统进阶版 前言 一.系统需求 1.创建程序文件 2.书写程序 3.管理系统框架 二.功能函数 ...

  3. python批量读取文件赋值给一个参数_求助一个Python 循环读取文件,并对读到的字符串进行赋值,然后进一步生成json file 的方法。...

    求助一个Python 循环读取文件,并对读到的字符串进行赋值,然后进一步生成json file 的方法. 本来想用shell写,利用while read line do --done 但是这样json ...

  4. python简单名片管理器,一个简单的Python名片管理系统

    字符串和列表学完,自己试着写了一个非常简单的Python名片管理系统. 新萌尝试,大佬们不要喷. 修改名片的功能我偷了个懒,因为我不知道怎么通过定义下标,然后通过下标来修改列表内的字符串. 我的思路是 ...

  5. 正版七日杀服务器存档,七日杀网吧怎么存档 七日杀网吧存档读档方法介绍-游侠网...

    七日杀的电脑要求配置虽然不是特别高,但是相对于很多玩家的电脑来说还是一个不小的负担的,所以很多玩家会选择去网吧游玩,但是很多玩家发现网吧非主机玩家的人物数据重进总是清零.所以今天小编就为大家带来了便是 ...

  6. Unity_二进制,Jason,XML存档读档

    创建一个类Save 用来保存游戏的信息,以便于存档 Save.cs的代码 using System.Collections; using System.Collections.Generic; usi ...

  7. python增删改查人名管理_python3字典列表的增删改查(名片管理系统函数版)

    1.列表的增删改查 增加:有三种添加方式(append.insert.extend) #append:把添加的内容直接添加到列表的末尾 a=[1,2,3] a.append('abc') print( ...

  8. python名片管理系统2.0_python名片管理系统代码

    最近看到有朋友在讨论python的名片管理系统的实现问题,那么这一篇文章中,我就有提到要实现个简单的名片管理系统了.这个是没有界面化,就单纯的在控制台操作而已.所以,总体来说,很简单,实现起来不难. ...

  9. python名片管理系统_用python实现名片管理系统

    python的基础练习案例--名片管理系统,一个控制台程序的案例练习,平台为pycharm2017.代码是看着python视频学的时候写的,pycharm运行没有问题. 系统需求 1.程序启动,显示名 ...

最新文章

  1. 聚焦OA品牌:OA产品影响力是选型关键
  2. Linux系统之路——如何在CentOS7.2安装MySQL
  3. VirtualBox虚拟机开机后台自启动
  4. Linus下安装maven
  5. (23)HTTP 状态消息
  6. [LeetCode][JavaScript]Power of Three
  7. ImportError: libnvinfer.so.7: cannot open shared object file: No such file or directory
  8. 代码很烂,所以离职?
  9. matlab 导出asc文件,将* .asc文件保存为Excel文件
  10. java 文件流 乱码_Java IO流之中文乱码
  11. 网络安全应急响应(文末附应急工具)
  12. Equinox 和 OSGI 介绍
  13. 15个经典面试问题及回答思路,挥泪整理面经
  14. 假定在使用CSMA/CD协议的10Mbit/s以太网中某个站在发送数据时检测到碰撞,执行退避算法时选择了随机数r=100.试问这个站需要等待多长时间后才能再次发送数据?如果是100Mbit/s的以太网
  15. 03系统多界面_资讯:苹果公布iPhone 12屏幕更换价格;华为 Mate 40 Pro 系统界面截屏曝光;Redmi K30S 更多细节曝光...
  16. 树莓派开机自启动opencv程序脚本及报错分析及拓展
  17. python 如果你的年龄大于18_5分钟学会Python的if条件判断语句
  18. STM32夺命100问,你知道几个?
  19. matlab 柱面投影,图像拼接(不投影到柱面)(渐入渐出融合) matlab程序
  20. HTML筑基知识点二

热门文章

  1. java-php-python-ssm流浪动物救助网站设计与实现计算机毕业设计
  2. 《zhaoolee的宝藏周刊》第2期: 用星际远航拯救生育率问题
  3. 幸福的夫妻,多少都有点quot;六亲不认quot;
  4. valorant皮肤怎么获得_瓦罗兰特Valorant白女票任务出来啦!免费皮肤,特工任你选!...
  5. 动态可订制属性的 PropertyGrid
  6. C#大小写验证 RegexOptions.IgnoreCase
  7. 小觅智能 | VINS-kidnap 学习笔记
  8. 赛效:比格设计在线拼图软件怎么排列图片
  9. php写账户冻结_账户冻结与解冻
  10. cookies的时限是多少_【cookie】设置cookie过期时间 超时时间,Cookie 设置 expires