欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-07-16 15:37:03
...

本人最近开始学习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

测试截图:

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