python 文件操作练习

  • 2020 年 1 月 12 日
  • 笔记

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

# 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("未找到员工信息:33[31;1m{_name}33[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("未找到员工信息:33[31;1m{_name}33[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("员工33[31;1m{_name}33[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("未找到员工信息:33[31;1m{_name}33[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()