написанна первая функция load_data(filepath: str) -> list[dict]:
This commit is contained in:
parent
edf6bac3e4
commit
4a45166c01
39
main.py
39
main.py
@ -1,7 +1,44 @@
|
|||||||
# 1. Читает текстовый файл с данными (каждая строка: имя,отдел,зарплата,стаж).
|
# 1. Читает текстовый файл с данными (каждая строка: имя,отдел,зарплата,стаж).
|
||||||
# Возвращает список словарей: [{"name": str, "dept": str, "salary": float, "exp": float}, ...].
|
# Возвращает список словарей: [{"name": str, "dept": str, "salary": float, "exp": float}, ...].
|
||||||
|
from sys import exec_prefix
|
||||||
|
|
||||||
def load_data(filepath: str) -> list[dict]:
|
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. Возвращает новый список, содержащий только сотрудников указанного отдела.
|
# 2. Возвращает новый список, содержащий только сотрудников указанного отдела.
|
||||||
def filter_by_department(employees: list[dict], department: str) -> list[dict]:
|
def filter_by_department(employees: list[dict], department: str) -> list[dict]:
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user