В общем, суть такая:
Есть файл с протоколом регистраций пользователей на сайте (registrations.txt).
Каждая строка содержит информацию о имени, электронной почте и возрасте человека.
Надо проверить данные из файла, для каждой строки и в результате проверки нужно сформировать два файла:
- registrations_good.log для правильных данных, записывать строки как есть
- registrations_bad.log для ошибочных, записывать строку и вид ошибки.
Все исключения я поймал, но проблема в том, что я понятия не имею, как записать всю информацию в лог файлы
class NotNameError(Exception):
def __init__(self, message, input_data = None):
self.message = message
self.input_data = input_data
def __str__(self):
return self.message
class NotEmailError(Exception):
def __init__(self, message, input_data = None):
self.message = message
self.input_data = input_data
def __str__(self):
return self.message
def read_line(line):
print(f'{line}')
name, mail, age = line.split(' ')
age = int(age)
try:
if age < 10 or age > 99:
raise ValueError
except ValueError:
print(f"Недопустимое значение возраста {ValueError}")
try:
if name.isalpha() == False:
raise NotNameError('Ошибка имени')
except NotNameError:
print(f"Недопустимое значение имени {NotNameError}")
try:
if '@' not in mail:
raise NotEmailError('Ошибка электронной почты')
elif '.' not in mail:
raise NotEmailError('Ошибка электронной почты')
except NotEmailError:
print(f"Недопустимое значение для электронной почты {NotEmailError}")
return name, mail, age
text = open('registrations_.txt', 'r', encoding="utf-8")
for line in text:
try:
line_in_text = read_line(line)
except ValueError as val_exc:
if 'unpack' in val_exc.args[0]:
print(f'Пропущено одно или несколько значений {val_exc}')
else:
print(f'Ошибка значения {val_exc}')
text.close()
Подскажите, пожалуйста, как записать нужные логи?