diff --git a/main.py b/main.py index 3342c3b..2c94bc6 100644 --- a/main.py +++ b/main.py @@ -1,7 +1,44 @@ # 1. Читает текстовый файл с данными (каждая строка: имя,отдел,зарплата,стаж). # Возвращает список словарей: [{"name": str, "dept": str, "salary": float, "exp": float}, ...]. +from sys import exec_prefix + def load_data(filepath: str) -> list[dict]: - pass + employees = [] + filepath = "data/employees.txt" + try: + with open(filepath, "r", encoding="utf-8") as file: + for line_number, line in enumerate(file, 1): + # Чищу строку от пробелов по краям и скипаю пустые строки, а то хз кто там этот емплоес.тииксти писал + line = line.strip() + if not line: + continue + + try: + # делим строку по запятой + parts = [p.strip() for p in line.split(",")] # зачем нейронки если всю эту строку мне пайчарм вставил после знака равно??? + + if len(parts) != 4: # ну вдруг там не 4 колонки + print(f"Ошибка в строке {line_number}: надо 4 значения, а получил {len(parts)}.") + continue + + employee = { + "name": parts[0], + "dept": parts[1], + "salary": float(parts[2]), + "exp": float(parts[3]) + } + employees.append(employee) + + except ValueError as e: + print(f"Ошибка преобразования типов в строке {line_number}: {e}") + + except FileNotFoundError: + print(f"Ошибка: Файл по адресу '{filepath}' не найден.") + except Exception as e: + print(f"Произошла непредвиденная ошибка: {e}") + + return employees + # 2. Возвращает новый список, содержащий только сотрудников указанного отдела. def filter_by_department(employees: list[dict], department: str) -> list[dict]: