【发布时间】:2020-08-16 16:44:25
【问题描述】:
我目前正在创建一个登录系统,它将用户名和密码存储在一个文本文件中。
这是我的代码:
import csv
Brugere = open("D:\Filer\Programmering/Profiles.txt","r+",newline="\n")
writer = csv.writer(Brugere, delimiter=",")
print("Welcome to the chat app!")
Brugernavn = "" //means username
Kodeord = "" // means password
def Signup(j,k):
print("Welcome to sign up!\n Please enter your Username")
j = input("")
if j not in Brugere:
print("Hello, " + j + ", please enter a password:")
k = input("")
line1 = [j,k]
writer.writerow(line1)
print("Great! Now you can sign in")
Signin(Brugernavn, Kodeord)
else:
print("Username already taken! try again")
Signup(Brugernavn, Kodeord)
def Signin(U,P):
print("Welcome to sign in!")
print("Do you already have an account?[y/n]")
ans = input("")
if ans == "n":
print("You will now be redirected to sign up")
Signup(Brugernavn, Kodeord)
elif ans == "y":
U = input("Username: ")
if U in Brugere:
P = input("Password: ")
print("WELCOME")
else:
print("Invalid username, try again")
Signin(Brugernavn, Kodeord)
else:
print("Please write 'y' or 'n'")
Signin(Brugernavn, Kodeord)
Signin(Brugernavn, Kodeord)
Brugere.close()
当我运行它时,signup 函数正常工作,但是当调用登录函数时,它无法从文本文件中找到用户名和密码。我认为这是因为它们仅在脚本完成运行后才被附加。但是,'我不确定。
我一直在为这个 csv 文件而苦苦挣扎。我想拥有它 this 其中每一行都是一个列表,我可以在其中找到用户名和密码
我听说有人称它为“逗号分隔值”,但我不知道该怎么做。
【问题讨论】:
-
您正在以读取模式打开文件,但尝试写入。使用
"a"作为模式(这意味着“附加”并打开它以进行写入,如果存在则附加到文件的末尾)。请参阅open()函数的文档。使用csv模块将自动在您传递给writerow()的列表中的值之间添加逗号。 -
非常感谢朋友!
-
听起来很有帮助……不客气。顺便说一句,我还建议您阅读并开始关注PEP 8 - Style Guide for Python Code,尤其是关于naming conventions — 它将使您的代码更具可读性,尤其是对其他人而言。
-
密码不应该被记录!!!在所有不安全的事情中,这是最糟糕的事情之一。密码也要用salt+hash保存,没有办法找回原来的密码。