用python实现的网址账号密码管理程序

本人最近开始学习python,学习了基础知识后写了些小程序来巩固知识点。这里分享的是一个用python实现的网址账号密码管理程序,实现了接收用户输入,将信息写入文件和查询已录入信息等功能,用到了python中的,字符串、列表、字典和函数等基础知识。

欢迎各路大神吐槽~~~

#引入包
import os
#import sys

#获取程序所在路径
path = os.getcwd()

if not os.path.exists(path + '\\siteinfos.txt'):
    txt = open(path + '\\siteinfos.txt','w')

#打开path下的文件,读写模式:w+,文件不存在会自动创建
txt = open(path + '\\siteinfos.txt')

temp = txt.read()
txt.close()

if temp != '':
    temp = eval(temp)
    #输出当前文件的内容
    print('当前文件的内容如下:')
    print(temp)
else:
    temp = []
    print('当前文件中没有内容!')

#sys.exit()

#定义一个列表,列表中的每一项存放一个字典,字典中按定义的项(网址、用户名和密码等)存放网站信息

#获取一个列表(新建或读取)
#temp = ["{'web':'www.jd.com','name':'zsc','passwd':'qaz'}","{'web':'www.baidu.com','name':'zsc','passwd':'qaz'}", "{'web':'www.taobao.com','name':'zsc','passwd':'qaz'}" ]

#定义一个检查函数,检查网址web是否已存在有记录?
def checkrecord(web):
    #定义一个布尔变量,存放检查结果
    isIn = False
    #遍历列表中的字典,查看网址web是否存在
    for i in range(len(temp)):
        #将列表的每一项格式化成字典后判断用户是否存在
        if eval(temp[i - 1]).get('web', 0) == web:
            #如果存在,isIn为True,且退出检查
            isIn = True
            break
        else:
            #如果为假,isIn为False,继续检查
            isIn = False
    if isIn:
        #网址已存在,返回True
        return True
    else:
        #用户不存在,返回False
        return False
    
#定义一个展示函数,展示网址web下的所有记录
def showrecord(web):
    #遍历列表中的字典,查看网址web是否存在
    for i in range(len(temp)):
        #将列表的每一项格式化成字典后判断用户是否存在
        if web in eval(temp[i - 1]).values():
            #存在则输出该条记录
            print(temp[i - 1])

#定义一个创建函数,将新记录添加到列表
def newtable(web,name,passwd):
    #用try...except函数捕捉异常,提高用户体验
    try:
        #获取列表的长度,用于插入时定位下标
        changdu = len(temp)
        #拼成字典
        temp_dic = "{'web':'" + web + "','name':'" + name + "','passwd':'" + passwd + "'}"
        #用列表的insert()方法添加值
        temp.insert(changdu + 1,  temp_dic)
    except:
        #添加过程中中遇到异常时输出异常
        #print('添加遇到未知错误!')
        #返回False
        return False
    else:
        #添加成功了
        #print('添加成功!')
        #返回True
        txt = open(path + '\\siteinfos.txt','w+')
        txt.write(str(temp))
        txt.close()
        #print('Bir database updated.')
        return True

while True:
    try:
        web = input('请输入网址:')
        if web != '':
            if checkrecord(web):
                print('网址已存在!')
                #显示当前列表中已存在的该网站的账号
                showrecord(web)
                goon = input('是否继续添加该网站的用户?[y/n](default:y)')
                if goon == '' or goon == 'y':
                    name = input('请输入账号 :')
                    passwd = input('请输入密码 :')
                    if name != '' and passwd != '':
                        if newtable(web,name,passwd):
                            #提示添加成功
                            print('添加成功!')
                            #显示当前列表中已存在的该网站的账号
                            showrecord(web)
                            #提示是否继续添加
                            goon = input('是否继续添加?[y/n](default:y)')
                            if goon != '' and goon != 'y':
                                print('再见!')
                                break
                        else:
                            print('添加失败!')
                    elif name != '' or passwd != '':
                        print('网址、账号或密码不能为空!')
                    else:
                        print('再见!')
                        break
                else:
                    print('再见!')
                    break
            else:
                    name = input('请输入账号 :')
                    passwd = input('请输入密码 :')
                    if name != '' and passwd != '':
                        if newtable(web,name,passwd):
                            #提示添加成功
                            print('添加成功!')
                            #显示当前列表中已存在的该网站的账号
                            showrecord(web)
                            #提示是否继续添加
                            goon = input('是否继续添加?[y/n](default:y)')
                            if goon != '' and goon != 'y':
                                print('再见!')
                                break
                        else:
                            print('添加失败!')
                    elif name != '' or passwd != '':
                        print('网址、账号或密码不能为空!')
                        
    except KeyboardInterrupt:
        print('Byte!')
        break

测试截图:


猜你喜欢

转载自blog.csdn.net/u013012406/article/details/79976851