繁体   English   中英

我正在 python 中开发身份验证程序,但我遇到了数据库问题

[英]I am developing an authentication program in python but I am having database problems

我正在开发一个登录系统,但我在用户和密码存储部分遇到了问题。 我制作了一个列表,并将其外包给一个文本文件,它会将所有内容写入其中,但每次我再次运行该程序时,它都会删除之前存储的所有内容。 这是我到现在为止写的代码。 还有什么我做错了,请告诉我,我很高兴得到更熟练的人对此的看法。

done = True

while done == True:
    user = input('Create Username: ')

    from pwgen import genPass

    break

while done == True:    
    password = input('Create Password: ')
    done = False

    store_user = []
    store_pass = []

    store_userpass = []

    if user in store_user:
        print("That user already exists")
    else:
        store_user.append(user)
        store_pass.append(password)

        outF = open('user.txt', 'w')
        outf= open('pw.txt', 'w')

        for line in store_user:
            outF.write(line)
            outF.write('\n')

        for line1 in store_pass:
            outf.write(line1)
            outf.write('\n')

    outF.close()
    outf.close()

    done = False

while True:
    userguess=""
    passwordguess=""
    key=""
    while (userguess != user) and (passwordguess != password):
        userguess = input('User Name: ')
        passwordguess = input('Password: ')

        if userguess != user:
            print("Error: Unknown username.")
        if userguess == user and passwordguess != password:
            print("Error: Incorrect password. Try again.")
        if userguess != user and passwordguess != password:
            print("Error: Unknown user and password combination.")
        if userguess == user and passwordguess == password:
            print("Welcome,", user, ". Type lock to lock this user.")
    break

while key != "lock":
    key = input()

您以write模式( open函数中的第二个参数)打开文件user.txtpw.txt ,每次都重新创建文件,而不是append模式,这将允许您将 append 数据写入文件。

尝试:

outF = open('user.txt', 'a')
outf= open('pw.txt', 'a')

代替:

outF = open('user.txt', 'w')
outf= open('pw.txt', 'w')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM