Сравнения почтовых адресов
Имеется база данных эл. почт (txt формат). Пользователь отправляет свой адрес в функцию (например [email protected]). В базе содерится похожий (но не идентичный) ящик, с именем [email protected]. Пользовательского ящика в базе нет! Программа должна вернуть false, т.к. ящики разные. Я написал простую функцию для проверки вхождения:
def check(email):
with open("emails.txt", "r") as f:
emails = f.read()
if email in emails:
return True
else:
return False
Проблема в том, что хотя адрес на совпадает, программа будет возвращать значение True, если адрес имя ящика совпадет с концовкой имени другого. Как можно этого избежать?
Ответы (2 шт):
Решил через преобразование в список и последующее сравнение через email == line[0]
def check(email):
with open("emails.txt", "r") as f:
for line in f.readlines():
line = list(line.split(":"))
print(line)
if email == line[0]:
print(True)
return True
Предполагаю, что файл emails имеет вид:
[email protected]:Вася
[email protected]:Петя
тогда проверка будет примерно так, кстати, она соответсвует Вашему коду (без принтов, конечно)
def chek(email):
with open("emails.txt") as f:
return email in (s.split(':')[0] for s in f)