Python-制作一个"密码薄",其可以存储一个网址(例如 www.itcast.cn),和一个密码(例如 123456),请编写程序完成这个“密码薄”的增删改查功能,并且实现文件存储功能


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

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM