复习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之间的数字")