文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

python 文件操作练习

2023-01-31 02:00

关注

参考一兄弟写的文章进行练习:https://blog.51cto.com/000011211684/2052701

主要目的,熟悉文件列表的增、删、改操作……


# python 3.6 文件打开操作练习
#  date:2017-12-26
# _*_ coding:utf-8 _*_

import os,sys

def find():
    find_name = input("请输入要查询的员工姓名:").strip().upper()
    flag=False
    with open("info.txt",'r',encoding='utf-8') as f1:
        for line in f1:
            if line.split()[0]==find_name:
                flag=True
                print("员工姓名:",find_name,"\t工资:",line.split()[1])
            else:
                continue
    if not flag:
        print("未找到员工信息:\033[31;1m{_name}\033[1m".format(_name=find_name))

def modify():
    flag = False
    mod_info1=input("请输入要修改的员工姓名:").strip().upper()
    with open("info.txt", 'r', encoding='utf-8') as f1 , \
        open("info_new", 'w', encoding='utf-8') as f2:
        for line in f1:
            if mod_info1 ==line.split()[0]:

                mod_info2 = input("请输入修改后的工资:").strip()
                if not mod_info2.isdigit():  #判断输入是否为数字
                    print("请输入一个数字!!")
                    sys.exit()  #需等待完善优化,下同
                else:
                    f2.write(mod_info1+'\t'+mod_info2+'\n')
                    flag = True
            else:
                 f2.write(line)
    if os.path.exists('info_bak.txt'):os.remove("info_bak.txt") #如果存在则删除
    os.rename("info.txt","info_bak.txt")
    os.rename("info_new","info.txt")
    if flag:
         print("修改成功")
    else:
         print("未找到员工信息:\033[31;1m{_name}\033[1m".format(_name=mod_info1))

def add():
    flag = False
    add_info1 = input("请输入要增加的员工姓名:").strip().upper()
    with open("info.txt", 'r', encoding='utf-8') as f1 :
        for line in f1:
            if add_info1 == line.split()[0]:
                flag = True
            else:
                continue
    if flag:
        print("员工\033[31;1m{_name}\033[1m信息已存在".format(_name=add_info1))
    else:
        with open("info.txt", 'a', encoding='utf-8') as f2 :
            add_info2 = input("请输入工资:").strip()
            if not add_info2.isdigit():  # 判断输入是否为数字
                print("请输入一个数字!!")
                sys.exit()
            else:
                f2.write(add_info1 + '\t' + add_info2 + '\n')
                print("增加成功!!")

def dele():
    flag = False
    del_info1 = input("请输入要删除的员工姓名:").strip().upper()
    with open("info.txt",'r',encoding='utf-8') as f1 ,\
        open('info_new','w',encoding='utf-8') as f2:
        for line in f1:
            if line.split()[0] == del_info1:
                flag=True
                continue
            else:
                f2.write(line)
    if os.path.exists('info_bak.txt'):os.remove("info_bak.txt") #如果存在则删除
    os.rename("info.txt","info_bak.txt")
    os.rename("info_new","info.txt")
    if flag:
        print("删除成功!!")
    else:
        print("未找到员工信息:\033[31;1m{_name}\033[1m".format(_name=del_info1))

def main():
    menu={
        '1':find,
        '2':modify,
        '3':add,
        '4':dele,
        '5':exit
    }
    while True:
        print("""
        请选择:
        1,查询员工信息
        2,修改员工信息
        3,增加员工信息
        4,删除员工信息
        5,退出系统
        """ )
        choice=input('>>>>').strip()
        if choice in menu:
            menu[choice]()
if __name__=="__main__":
    main()


阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯