目前正在编写一个程序,用户可以使用帐户用户名和密码登录。用户输入的用户名和密码将写入字典 (account_login),然后将其与文本文件中的用户名和密码进行比较。 这是问题所在的代码:
def login_fn():
print("Please enter your account details below.")
current_usrname = input("Username: >")
current_pswrd = input("Password: >")
account_login.update({current_usrname:current_pswrd})
with open('accounts.txt', 'r') as file:
file.readlines()
if account_login in file:
print("logged in!")
else:
print("invalid!")
以下是文本文件,仅供参考:
fredsmart1,1234567890
jrobertson4,r@=%8(_W=1
bob101,1234598abc
marcusw,3#tr@9dw%4
popeyedd,1989eidjce
junkman00,p3*(kd8&ld
sbj2021,$d5e(ep2(de4ab3
robotman,7777Spy007
我的问题是,它不断返回说找不到用户输入的用户名和密码,即使它位于文本文件中。 例如,我会输入 Robotman 帐户,它将返回字符串“无效!”这意味着它在文本文件中找不到该帐户。 我试图让它返回“已登录!”这意味着它找到了该帐户。
对 python 来说还是很陌生,非常感谢任何帮助! 谢谢!
问题在于如何将
account_login
字典与文件内容进行比较。您当前正在从文件中读取所有行,但实际上并未正确地将输入与每行进行比较。
你应该:
def login_fn():
print("Please enter your account details below.")
current_usrname = input("Username: >")
current_pswrd = input("Password: >")
with open('accounts.txt','r') as file:
for line in file:
stored_usrname, stored_pswrd = line.strip().split(',')
if current_usrname == stored_usrname and current_pswrd == stored_pswrd:
print("logged in!")
return
print("invalid!")