如何从 Python 中的 CSV 文件验证用户名和密码?
How to verify username and password from CSV file in Python?
我正在做一个 Python 项目,我必须从 csv 文件中验证我的用户名和密码,其中前两行和列的用户名和密码为 'hi'。
当前代码:
answer = input("Do you have an account?(yes or no) ")
if answer == 'yes' :
login = False
csvfile = open("Username password.csv","r")
reader = csv.reader('Username password.csv')
username = input("Player One Username: ")
password = input("Player One Password: ")
for row in reader:
if row[0]== username and row[1] == password:
login = True
else:
login = False
if login == False:
print("Incorrect. Game Over.")
exit()
else:
print("You are now logged in!")
else:
print('Only Valid Usernames can play. Game Over.')
exit()
我假设 .csv
文件包含一个用户名和密码列表,这就是您要遍历它的原因。
首先,我认为你的条件判断方式有误。如果 login == True
,你目前失败了?不确定为什么会这样。
此外,更大的问题是你的for循环;它正在覆盖正确的数据。
例如,如果第一行与给定的凭据匹配,我们需要授权用户。但在您的情况下,循环将继续并继续检查其余行,覆盖 login
的值。所以当循环结束时,login
的值是基于最后一行的
找到正确的用户名和密码后,您需要退出循环。
我还建议您首先从 csv
文件中创建一个用户名和密码字典 (dict
),以使您的生活更轻松。
这就是你想要的
首先你登录逻辑错误
为了方便起见,我更改了文件名
import csv
login = False
answer = input("Do you have an account?(yes or no) ")
if answer == 'yes' :
with open('upassword.csv', 'r') as csvfile:
csv_reader = csv.reader(csvfile)
username = input("Player One Username: ")
password = input("Player One Password: ")
for row in csv_reader:
print(row[0], row[1])
print(username, password)
if row[0]== username and row[1] == password:
login = True
break
else:
login = False
break
if login == True:
print("You are now logged in!")
else:
print("Incorrect. Game Over.")
exit()
else:
print('Only Valid Usernames can play. Game Over.')
exit()
我还有一些打印语句可以帮助你理解工作流程
并尽量避免打开这样的文件
csvfile = open("Username password.csv","r")
我正在做一个 Python 项目,我必须从 csv 文件中验证我的用户名和密码,其中前两行和列的用户名和密码为 'hi'。
当前代码:
answer = input("Do you have an account?(yes or no) ")
if answer == 'yes' :
login = False
csvfile = open("Username password.csv","r")
reader = csv.reader('Username password.csv')
username = input("Player One Username: ")
password = input("Player One Password: ")
for row in reader:
if row[0]== username and row[1] == password:
login = True
else:
login = False
if login == False:
print("Incorrect. Game Over.")
exit()
else:
print("You are now logged in!")
else:
print('Only Valid Usernames can play. Game Over.')
exit()
我假设 .csv
文件包含一个用户名和密码列表,这就是您要遍历它的原因。
首先,我认为你的条件判断方式有误。如果 login == True
,你目前失败了?不确定为什么会这样。
此外,更大的问题是你的for循环;它正在覆盖正确的数据。
例如,如果第一行与给定的凭据匹配,我们需要授权用户。但在您的情况下,循环将继续并继续检查其余行,覆盖 login
的值。所以当循环结束时,login
的值是基于最后一行的
找到正确的用户名和密码后,您需要退出循环。
我还建议您首先从 csv
文件中创建一个用户名和密码字典 (dict
),以使您的生活更轻松。
这就是你想要的
首先你登录逻辑错误 为了方便起见,我更改了文件名
import csv
login = False
answer = input("Do you have an account?(yes or no) ")
if answer == 'yes' :
with open('upassword.csv', 'r') as csvfile:
csv_reader = csv.reader(csvfile)
username = input("Player One Username: ")
password = input("Player One Password: ")
for row in csv_reader:
print(row[0], row[1])
print(username, password)
if row[0]== username and row[1] == password:
login = True
break
else:
login = False
break
if login == True:
print("You are now logged in!")
else:
print("Incorrect. Game Over.")
exit()
else:
print('Only Valid Usernames can play. Game Over.')
exit()
我还有一些打印语句可以帮助你理解工作流程
并尽量避免打开这样的文件
csvfile = open("Username password.csv","r")