Проверьте, есть ли входные данные где-либо в списке

#python #list #file #input

#python #Список #файл #ввод

Вопрос:

Итак, у меня есть этот код ниже:

Это работает, принимая пользовательский ввод, который находится во внешнем файле списка, но я бы хотел, чтобы он принимал входные данные от пользователя, а затем проверял, есть ли этот ввод где-либо во внешнем файле. Прямо сейчас он принимает только первую строку в качестве первого пользователя, затем остальные строки. Я хочу, чтобы он принимал входные данные, даже если это не первая строка кода.

 with open("users.txt") as f:
    lines = set("users.txt")
    x = input("First Player, please enter a valid username and password (In the form: Username , Password): ")
    for lines in f:
        if (x) in ("users.txt"):
             lines2 = [line.rstrip("n") for line in open("users.txt")]
             y = input("Second Player, please enter a valid username and password (In the form: Username , Password): ")
             for lines in f:
                if (y) in ("users.txt"):
  

Я пробовал простой код, вплоть до более сложного кода, такого как:

 if (y in lines for y in lines)
  

Комментарии:

1. Обновление: Это работает, только если я ввожу входные данные из файла по порядку.

2. x in "users.txt" проверяет, есть ли x в строке "users.txt" , а не в файле с именем «users.txt «.

Ответ №1:

Вы работаете с именем файла, а не с содержимым файла.

 with open("users.txt") as f:
    allowed_names = set(line.strip() for line in f)

x = input("First player name, password")
p1_name, p1_password = x.split(",")

y = input("Second player name, password")
p2_name, p2_password = y.split(",")

if p1_name in allowed_names:
    ...

if p2_name in allowed_names:
    ...
  

Комментарии:

1. Это сработало! Большое спасибо. Теперь я понимаю, что это был довольно глупый вопрос.