【Python】生死簿管理系统,估值5毛

生死簿管理系统

代码

"""
生死簿管理系统
"""
import os
import time

file_name = 'data.txt'


def main():
    while True:
        main_menu()
        choice = (int)(input("请选择: "))
        if choice in [0, 1, 2, 3, 4, 5, 6, 7]:
            if choice == 0:
                answer = input("确定要退出生死簿系统吗?y/n ")
                if answer.lower() == 'y':
                    print("已退出!!!")
                    break
                else:
                    continue
            elif choice == 1:
                add()
                pass
            elif choice == 2:
                pass
            elif choice == 3:
                delete()
                pass
            elif choice == 4:
                pass
            elif choice == 5:
                pass
            elif choice == 6:
                pass
            elif choice == 7:
                pass
        else:
            print("")


def main_menu():
    print("=============================生死簿管理系统=============================")
    print("-----------------------------功能菜单-----------------------------")
    print("1.录入人员")
    print("2.查找人员")
    print("3.删除人员")
    print("4.修改人员")
    print("5.排序")
    print("6.统计总人数")
    print("7.查询所有")
    print("0.退出")
    print("----------------------------------------------------------------")


def add():
    person = {}
    while True:
        person_id = input("请输入人员ID: ")
        if not id:
            print("id不能为空")
            continue
        else:
            person["id"] = person_id
            break
    while True:
        name = input("请输入人员姓名: ")
        if not name:
            print("id不能为空")
            continue
        else:
            person["name"] = name
            break
    while True:
        num = input("请输入人员阳寿: ")
        if not num:
            print("阳寿不能为空")
            continue
        else:
            person["num"] = num
            break

    # 保存数据
    save_data(person)
    # 是否继续添加
    s = input("是否继续添加人员?y/n ")
    if s.lower() == 'y':
        add()
    else:
        main()
    pass


def save_data(person):
    print("数据保存中。。。")
    try:
        # 追加
        file_stream = open(file_name, 'a', encoding="utf-8")
    except Exception as e:
        # 写入
        file_stream = open(file_name, 'w', encoding="utf-8")
    print("数据保存成功。。。")
    # 写入 数据状态
    person['yn'] = 1
    # 创建时间
    person['create_time'] = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())
    file_stream.write(str(person) + "\n")
    # 关闭文件
    file_stream.close()
    pass


def search():
    pass


def delete():
    while True:
        person_id = input("请输入要删除的人员ID:")
        person_list = []
        if person_id != '' and person_id is not None:
            if os.path.exists(file_name):
                with open(file_name, 'r', encoding="utf-8") as file:
                    person_list = file.readlines()
            else:
                pass
            # 定义是否被删除
            del_flag = False
            if person_list:
                # w模式会清空内容
                with open(file_name, 'w', encoding="utf-8") as wfile:
                    for item in person_list:
                        # 转为dict类型
                        d = dict(eval(item))
                        if d['id'] != person_id:
                            wfile.write(str(d) + "\n")
                        else:
                            del_flag = True
                    if del_flag:
                        print(f"ID为{person_id}的人员已删除!!!")
                    else:
                        print(f'ID为{person_id}的人员不存在!!!')
            else:
                print(f'ID为{person_id}的人员不存在!!!')
                break
            query_all()
            while True:
                answer = input("是否继续删除?y/n ")
                if answer == '' or answer is None:
                    continue
                else:
                    break
            if answer.lower() == 'y':
                continue
            else:
                break
        else:
            print("ID不能为空")
    pass


def modify():
    pass


def sort():
    pass


def total():
    pass


def query_all():
    pass


if __name__ == '__main__':
    main()

打包可执行文件

pip3 install PyInstaller

pyinstaller -F /Users/kw/kwzone/Python/code/python-hello/实操篇/BookOfLifeAndDeath/bookmgr.py

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/184636.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

连接docker swarm和凌鲨

docker swarm相比k8s而言,部署和使用都要简单很多,比较适合中小研发团队。 通过连接docker swarm和凌鲨,可以让研发过程中的常用操作更加方便。 更新容器镜像调整部署规模查看日志运行命令 使用步骤 部署swarm proxy 你可以通过linksaas…

无人机电力巡检系统运行流程全解读

随着电力行业体系不断完善,保障电网运营的安全成为至关重要的任务。传统的人工巡检方式在面对电力设备广泛分布和复杂工况时显得效率低下,为了解决这一难题,无人机电力巡检系统应运而生,以智能化的运行流程,为电网安全…

ubuntu22.04 arrch64版在线安装maven

脚本 if type -p mvn; thenecho "maven has been installed."elsecd /home/zenglgwget https://dlcdn.apache.org/maven/maven-3/3.9.5/binaries/apache-maven-3.9.5-bin.tar.gz --no-check-certificatetar vxf apache-maven-3.9.5-bin.tar.gz rm -rf /usr/local/mav…

【Mybatis】Mybatis操作数据库详解

Mybatis操作数据库 什么是MybatisMybatis入门准备工作创建Springboot工程 建表 创建实体类 配置数据库连接字符串编写持久层代码单元测试 Mybatis的基础操作打印日志参数传递增(insert)返回主键 删(delete)改(update)查(select) Mybatis XML配置文件配置连接字符串和Mybatis写持…

【开源】基于JAVA的计算机机房作业管理系统

项目编号: S 017 ,文末获取源码。 \color{red}{项目编号:S017,文末获取源码。} 项目编号:S017,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 登录注册模块2.2 课程管理模块2.3 课…

IIS 基线安全加固操作

目录 账号管理、认证授权 ELK-IIS-01-01-01 ELK-IIS-01-01-02 ELK-IIS-01-01-03 ELK-IIS-01-01-04 日志配置 ELK-IIS-02-01-01 ELK-IIS-02-01-02 ​​​​​​​ ELK-IIS-02-01-03 通信协议 ELK-IIS-03-01-01 设备其他安全要求 ELK-IIS-04-01-01 ​​​​​​​ ELK-I…

YM5411 WIFI 5模块 完美替代AP6256

YM5411是沃特沃德推出的一款低成本,低功耗的模块,该模块具有Wi-Fi(2.4GHz和5GHz IEEE 802.11 a/b/g/n/ac)蓝牙(BT5.0)功能,并通过了SRRC认证,带mesh,完美替换AP6256。高度…

虚拟化原理

目录 什么是虚拟化广义虚拟化狭义虚拟化 虚拟化指令集敏感指令集虚拟化指令集的工作模式监视器对敏感指令的处理过程: 虚拟化类型全虚拟化类虚拟化硬件辅助虚拟化 虚拟化架构裸金属架构宿主机模式架构 什么是虚拟化 虚拟化就是通过模仿下层原有的功能模块创造接口来…

js简单实现京东的电梯导航

目录 css代码 html代码 js代码 完整代码 效果图: 思路:首先先搭建好结构,在写css样式 由于京东本身一开始是看不见下拉的导航,就把这导航一开始用固定定位,并使其完全不显 示页面,用top的值为…

视频服务网关的三大部署(二)

视频网关是软硬一体的一款产品,可提供多协议(RTSP/ONVIF/GB28181/海康ISUP/EHOME/大华、海康SDK等)的设备视频接入、采集、处理、存储和分发等服务, 配合视频网关云管理平台,可广泛应用于安防监控、智能检测、智慧园区…

Jmeter 压测保姆级入门教程

1、Jmeter本地安装 1.1、下载安装 软件下载地址: https://mirrors.tuna.tsinghua.edu.cn/apache/jmeter/binaries/ 选择一个压缩包下载即可 然后解压缩后进入bin目录直接执行命令jmeter即可启动 1.2 修改语言 默认是英文的,修改中文,点击…

JoySSL OV证书

JoySSL OV证书全称为Organization Validation SSL证书,属于组织验证型SSL证书。它是一种增强型的SSL证书,不仅能够提供基本的数据加密功能,还能提供更高级别的安全保障。通过验证申请者身份的方式,确保了用户访问的网站是由合法的…

精益生产中的周转箱优势:提升效率与质量的得力利器

在当今竞争激烈的制造业中,企业追求高效生产和卓越质量是至关重要的。精益生产理念提供了一套有效的工具和方法,其中周转箱作为一个关键的组成部分,在优化生产流程、提高效率和质量方面发挥着重要作用。下面谈谈精益生产中的周转箱优势&#…

测试设备的选型

随着科技的不断发展和进步,各行各业都在积极地进行产业升级和转型。在这个过程中,各种测试设备发挥着不可或缺的作用。如何选择合适的测试设备,成为了企业生产过程中必须面对的重要问题。本文将探讨测试设备的选型,为企业提供一些…

roseha for windows 11+oracle 11g部署过程

文章目录 一、环境准备关闭防火墙配置hosts共享存储准备 二、部署步骤1.主机A、B安装数据库软件2.主机A进行数据库实例创建3.主机B创建数据库4.安装配置roseha软件 一、环境准备 windows server 2019 oracle 11.2.0.3 EE roseha for windows 11 5个IP地址:2心跳、3…

【开源】基于JAVA的衣物搭配系统

项目编号: S 016 ,文末获取源码。 \color{red}{项目编号:S016,文末获取源码。} 项目编号:S016,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、研究内容2.1 衣物档案模块2.2 衣物搭配模块2.3 衣…

Zookeeper 集群中是怎样选举leader的

zookeeper集群中服务器被划分为以下四种状态: LOOKING:寻找Leader状态。处于该状态的服务器会认为集群中没有Leader,需要进行Leader选举;FOLLOWING:跟随着状态,说明当前服务器角色为Follower;LE…

Python用爬虫ip抓取数据为啥还被限制ip?

今天遇到一个奇怪的事情,使用python爬取一个网站,但是频繁出现网络请求错误,之后使用了爬虫ip,一样会显示错误代码。一筹莫展之下,我对现在的IP进行在线测试,发现IP质量很差。后来我总结了以下几点原因。 P…

实时LCM的ImgPilot搭建部署

ImgPilot是具有实时潜在一致性模型(LCM)功能的图像试点 下载源码 GitHub - leptonai/imgpilot: Image pilot with the power of Real-Time Latent Consistency Modelhttps://github.com/leptonai/imgpilot安装前端web cd imgpilot npm install 安装…

opencv-使用 Haar 分类器进行面部检测

Haar 分类器是一种用于对象检测的方法,最常见的应用之一是面部检测。Haar 分类器基于Haar-like 特征,这些特征可以通过计算图像中的积分图来高效地计算。 在OpenCV中,Haar 分类器被广泛用于面部检测。以下是一个简单的使用OpenCV进行面部检测…