Прочитать указанную строку c из текстового файла, а затем проверить, равна ли она строковой переменной? - PullRequest
2 голосов
/ 26 февраля 2020

Я пытаюсь создать систему входа в систему. Пользователь создает свою учетную запись и вводит имя пользователя и пароль , которые он хотел бы использовать.

имя пользователя сохраняется в строке 1 новый текстовый файл.

пароль сохраняется в строке 2 текстового файла.

Теперь я открываю файл и делаю его читаемым

user_file = open("user1.txt", "r")

Затем пользователь вводит имя пользователя, созданное ранее.

username_login = input("Enter username ")

Теперь я хочу проверить, сохранено ли введенное имя пользователя в сети. 1

if user_file.readline(1) != username_login:
        print("Incorrect username")
    else:
        password_login = input("Enter Password ")

Если введенное имя пользователя будет правильным, оно будет соответствовать строке 1 и, следовательно, выведет оператор else. но вместо этого я всегда получаю отзыв "неправильное имя пользователя"

Ответы [ 3 ]

2 голосов
/ 26 февраля 2020

Предполагая, что файл состоит всего из 2 строк, вы можете извлечь имя пользователя и пароль, а затем сравнить их с данными ввода. Пример:

with open('user1.txt') as f:
   username, password = f.read().splitlines() 
# now compare username and password with input data
1 голос
/ 26 февраля 2020

Как сказал Райан, это определенно не тот способ, которым логины должны управляться в реальности, но при условии, что это просто практика python ...

Во-первых, обратите внимание, что индексы python начинаются с 0 , поэтому первая строка будет называться строкой 0. Я также не верю, что readline () принимает параметр, чтобы заставить его делать то, что вы хотите. Вместо этого одним из решений может быть сохранение содержимого файла в списке, который можно проиндексировать:

lines = user_file.readlines()
username_login = input("Enter username ")
if lines[0].strip('\n') != username_login:
    print("Incorrect username")
else:
    password_login = input("Enter Password ")

, а затем для доступа к паролю вы можете сделать lines[1]

1 голос
/ 26 февраля 2020

Go через ваш файл с for l oop:

for line in user_file.readlines():
    if line[0] == username:
        #do something
...