我正在用python开发一个认证程序,但我遇到了数据库问题。

问题描述 投票:0回答:1

我正在开发一个登录系统,但在用户和密码存储部分遇到了问题。我做了一个列表,然后我把它外包给一个文本文件,它把所有的东西都写在里面,但是每次我再次运行程序的时候,它就会把之前存储的所有东西都删除。这是我写到现在的代码。如果我还有什么地方做错了,请告诉我,我很乐意得到一个更熟练的人的意见。

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()
python database authentication login-script
1个回答
1
投票

你打开文件 user.txtpw.txtwrite 模式(在 open 函数),每次都会重新创建文件,而不是使用 append 模式,这将允许您将数据附加到您的文件。

试试。

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

而不是:

outF = open('user.txt', 'w')
outf= open('pw.txt', 'w')
© www.soinside.com 2019 - 2024. All rights reserved.