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