Как проверить имя пользователя и пароль из файла CSV в Python? - PullRequest
0 голосов
/ 21 марта 2019

Я делаю проект на Python, где мне нужно проверить свое имя пользователя и пароль из CSV-файла, где первые две строки и столбцы имеют имя пользователя и пароль как «привет».

Текущий код:

    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-файл: https://thecompton -my.sharepoint.com /: x: / g / personal / 001422_thecompton_org_uk / EbhI4A12pg1EhMezOR8tOlgBF-iOh8JTAM3x3WUOk3i9Ig? E = AJktHi * 1008

Ответы [ 2 ]

0 голосов
/ 21 марта 2019

Вот что вы хотите

Сначала у вас была неправильная логика входа в систему. Я изменил имя файла для моего удобства

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")
0 голосов
/ 21 марта 2019

Я предполагаю, что файл .csv содержит список имен пользователей и паролей, поэтому вы просматриваете его.

Во-первых, я думаю, что ваши условия неверны.Вы в настоящее время терпите неудачу, если login == True?Не уверен, почему это имело бы смысл.

Кроме того, большая проблема - ваш цикл for;он перезаписывает правильные данные.

Например, если первая строка соответствует заданным учетным данным, нам нужно авторизовать пользователя.Но в вашем случае цикл продолжится и будет проверять оставшиеся строки, перезаписывая значение login.Поэтому, когда цикл заканчивается, значение login основывается на последней строке.

Вам необходимо выйти из цикла, как только будут найдены правильные имя пользователя и пароль.

Я бы тожеПредлагаем сначала создать словарь (dict) имен пользователей и паролей из файла csv, чтобы облегчить себе жизнь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...