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()