#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. Это сработало! Большое спасибо. Теперь я понимаю, что это был довольно глупый вопрос.