復習python文件操作,看着這樣的一個題目(制作一個"密碼薄",其可以存儲一個網址(例如 www.itcast.cn),和一個密碼(例如 123456),請編寫程序完成這個“密碼薄”的增刪改查功能,並且實現文件存儲功能),於是寫了一下實現代碼,如下:
import os # 添加網址、密碼 def add_url_pwd(): f = open("url_test.txt", "a+", encoding="utf8") url1 = input("請輸入新的網址:") password1 = input("請輸入新的密碼:") if os.path.getsize("url_test.txt") != 0: # 判斷文件是否為空,若為空則不空一行,否則換行 url_pwd = "\n" + url1 + "\t" + password1 else: url_pwd = url1 + "\t" + password1 # url_pwd = url1 + "\t" + password1 + "\n" f.writelines(url_pwd) print("新網址和密碼已成功寫入密碼簿") f.close() # 修改網址、密碼 def update_url_pwd(): f = open("url_test.txt", "r+", encoding="utf8") url1 = input("請輸入要修改的網址:") password1 = input("請輸入要修改的密碼:") old_l = url1 + "\t" + password1 all_data = "" for l1 in f.readlines(): # print("輸出:" + l1) if old_l in l1: print("請確認修改前的網址和密碼:%s" % l1) new_url = input("請輸入修改后的網址:") new_password = input("請輸入修改后的密碼:") new_l = new_url + "\t" + new_password l1 = l1.replace(old_l, new_l) print("網址或密碼修改成功") all_data += l1 f.close() f = open("url_test.txt", "w+", encoding="utf8") f.writelines(all_data) f.close() # 輸出/查找所有的網址、密碼 def select_url_pwd(): f = open("url_test.txt", "r") print("密碼簿中所有的網址和密碼如下:") print(f.read()) # for select_data in f.readlines(): # print(select_data, end="") f.close() # 根據網址、密碼查找 def search_url_pwd(flag_one): f = open("url_test.txt", "r", encoding="utf8") all_data = "" if flag_one == 0: url1 = input("請輸入要查找的網址:") for select_data in f.readlines(): data_list = select_data.split("\t") if url1 == data_list[0]: all_data += select_data print("查找出來的網址和密碼是:%s" % select_data, end="") if len(all_data) == 0: print("沒有你要查詢的網址") if flag_one == 1: password1 = input("請輸入要查找的密碼:") for select_data in f.readlines(): data_list = select_data.split("\t") if (password1 == data_list[1]) or (password1+'\n' == data_list[1]): all_data += select_data print("查找出來的網址和密碼是:%s" % select_data, end="") if len(all_data) == 0: print("沒有你要查詢的密碼") f.close() # 根據網址來刪除密碼簿中的網址和密碼記錄 def delete_url_pwd(): f = open("url_test.txt", "r+", encoding="utf8") url1 = input("請輸入你要刪除的網址(注意:密碼也會一起被刪除):") all_data = "" flag = 0 for select_data in f.readlines(): data_list = select_data.split("\t") if url1 != data_list[0]: all_data += select_data if url1 == data_list[0]: flag += 1 f.close() f = open("url_test.txt", "w+", encoding="utf-8") f.write(all_data) if flag == 0: print("沒有你要刪除的網址") else: print("刪除成功") f.close() if __name__ == "__main__": operation = input("輸入(0~5)的數字進行操作:\n" "***添加網址密碼到密碼簿請輸入0 ***\n" "***修改密碼簿請輸入1 ***\n" "***查詢所有的密碼簿請輸入2 ***\n" "***按網址查詢請輸入3 ***\n" "***按密碼查詢請輸入4 ***\n" "***刪除網址對應的密碼簿請輸入5 ***\n" "請輸入您要進行的操作:") if operation == '0': # 添加新的網址、密碼 add_url_pwd() elif operation == '1': # 修改網址、密碼 update_url_pwd() elif operation == '2': # 查詢密碼簿所有網址、密碼 select_url_pwd() elif operation == '3': # 根據網址查詢 search_url_pwd(0) elif operation == '4': # 根據密碼查詢 search_url_pwd(1) elif operation == '5': # 刪除對應的網址、密碼 delete_url_pwd() else: print("請輸入0~5之間的數字")