Python 从文本文件检查用户名和密码是否正确
我需要检查用户名和密码是否与文本文件中的详细信息匹配。我不知道该怎么做。以下是我到目前为止所做的(将用户名保存到文件中)Python 从文本文件检查用户名和密码是否正确,python,Python,我需要检查用户名和密码是否与文本文件中的详细信息匹配。我不知道该怎么做。以下是我到目前为止所做的(将用户名保存到文件中) 另一种方法是使用和open在循环内完成过程后关闭文件,这样您就可以创建读取循环和附加循环。为此,我喜欢将名称和密码存储在同一行上的想法,这样我们可以检查以确保名称和相应的密码相互链接,而不是对任何名称使用任何密码。另外,在使用append时,我们必须添加一个'\n',否则我们写的所有内容都将写入同一行 为了验证用户,我们将文件作为r打开,然后我们可以使用for line in
另一种方法是使用
和open
在循环内完成过程后关闭文件,这样您就可以创建读取循环和附加循环。为此,我喜欢将名称和密码存储在同一行上的想法,这样我们可以检查以确保名称和相应的密码相互链接,而不是对任何名称使用任何密码。另外,在使用append时,我们必须添加一个'\n'
,否则我们写的所有内容都将写入同一行
为了验证用户,我们将文件作为r
打开,然后我们可以使用for line in f
获取.txt
中的所有行,从那里我们可以循环遍历每一行,如果用户名和密码都存在于同一行中,我们可以欢迎用户,如果不将它们发送回开头
希望这有帮助
while True:
user = input('\nAre you a returning player: ')
if user.lower() == 'no':
with open('accounts.txt', 'a') as f:
username = input('\nEnter username: ')
password = input('Enter password: ')
combo = username + ' ' + password
f.write(combo + '\n')
else:
with open('accounts.txt', 'r') as f:
username = input('\nEnter username: ')
password = input('Enter password: ')
for line in f:
if username + ' ' + password + '\n' == line:
print('Welcome')
break
else:
print('Username and/or Password Incorrect')
你已经解决了对文件的写入问题。现在你应该在谷歌上搜索“如何用python读取文件”。欢迎!看起来你想让我们为你写些代码。虽然许多用户愿意为陷入困境的程序员编写代码,但他们通常只在海报已经试图自己解决问题时才提供帮助。演示这项工作的一个好方法是包括您迄今为止编写的代码、示例输入(如果有)、预期输出和实际获得的输出(控制台输出、回溯等)。你提供的细节越多,你可能得到的答案就越多。检查和。主要是您在读取创建的文件方面没有表现出努力。我还建议您在决定使用文本文件之前,查看OWASP存储密码的指南。学习如何从文件中读取变量是件好事,但这绝对不是一种安全的方法@本杰明,你没有错,但我认为这有点超出了OP的范围。早期用更高水平的东西打新手并不鼓励学习,而只是困惑和挫折。@Aaron fair point!只是一些吹毛求疵。。“accounts.txt”文件没有任何换行符(在追加模式下打开不会插入
”\n“
),上一个密码将与下一个用户名一起运行。由于所有这些都是一行,所以您也不会检查密码是否与给定用户实际关联,因为每个用户名和密码都在同一行。我可能会将我的密码与其他任何人的用户名一起使用:/最后,如果您打算逐行迭代,那么只使用来执行f:
中的行比调用f.readlines()更简单
并对结果进行迭代。另外,如果i:中的用户名和密码与您的想法不符,则您的行。。。这相当于如果bool(用户名)和(行中的密码):
*注意括号中的操作顺序。如果只需要将密码
作为行
的子字符串,很多都可以作为密码传递。@Aaron现在我正在修复一个用户/密码演示,错过了所有这些字典检索,@Aaron编辑得很好,但是如果在比赛之前出现else,我们将得到错误的语句,即write需要是writecombo+'\n'
yah,您可以进行更改。您还应该在开始时更新文本以匹配代码。
while True:
user = input('\nAre you a returning player: ')
if user.lower() == 'no':
with open('accounts.txt', 'a') as f:
username = input('\nEnter username: ')
password = input('Enter password: ')
combo = username + ' ' + password
f.write(combo + '\n')
else:
with open('accounts.txt', 'r') as f:
username = input('\nEnter username: ')
password = input('Enter password: ')
for line in f:
if username + ' ' + password + '\n' == line:
print('Welcome')
break
else:
print('Username and/or Password Incorrect')
Are you a returning player: no
Enter username: vash
Enter password: stampede
Are you a returning player: yes
Enter username: vash
Enter password: stacko
Username and/or Password Incorrect
Are you a returning player: yes
Enter username: vash
Enter password: stampede
Welcome