Поиск только первого значения в массиве в CSV-файле - PullRequest
0 голосов
/ 19 сентября 2018

Итак, я создаю систему входа в учетную запись, которая ищет в базе данных имя пользователя (и соответствующий пароль) и, если найдет, регистрирует пользователя.

Вот как в настоящее время выглядит файл csv

['dom', 'введите пароль']

Это записано в одном поле (в таблице Excel) и было записано в файл при регистрации пользователя.Однако, когда я пытаюсь войти в систему, программа будет входить в систему только в том случае, если это то, что введено в поле, когда я хотел бы войти в систему, когда введен dom.

Вот код, который читает файл csv, чтобы узнать, найдены ли имя пользователя / пароль в файле:

def Get_Details():
    user_namev2=user_name.get().lower() #Make it so entry box goes red if passwords password is incorrect, and red if username is incorrect/not fault
    user_passwordv2=user_password.get().lower()
    with open ('Accounts.csv', 'r') as Account_file:
        reader = csv.reader(Account_file)
        for row in reader:
            for field in row:
                if field == user_namev2:
                    print ("In file")

Вот как имя пользователя и пароль записываются в файл csvпосле регистрации учетной записи.

if re.match(user_password2v2, user_passwordv2):
    print("Passwords do match")
    user_info = []
    user_info.append(user_namev2)
    user_info.append(user_passwordv2)
    with open ('Accounts.csv', 'a') as Account_file:
        writer = csv.writer(Account_file)
        writer.writerow([user_info])
        Bottom()

Любые идеи о том, как я могу искать в CSV-файле, так что только определенная часть строки будет найдена и сопоставлена ​​с user_namev2

1 Ответ

0 голосов
/ 20 сентября 2018

Предполагая, что user_namev2 - это то, что находится в столбце dom, а user_passwordv2 - это то, что находится в столбце enter password, я бы использовал регулярное выражение для части username, которая находится в столбце dom.,

import regex

with open ('Accounts.csv', 'r') as Account_file:
    reader = csv.reader(Account_file)
    for row in reader:
        if re.findall(user_namevv2[0:5],row[0]): #slice a part of the user name 
            print ("In file")

Примечание. Я также выбираю первый элемент каждого row с row[0], поскольку это столбец dom.

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