/
AnnaSam6
/
cook-book
Обзор
Документация
Войти
/
AnnaSam6
/
cook-book
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
Cook-book.py
84 строки
2 KB
AnnaSam6
commit
16 авг 2025, 18:42
16 авг 2025, 18:42
571f267
Код
Авторство
О чём код?
def parse_ingredient(ingredient_line): """Парсит строку с ингредиентом и возвращает словарь""" parts = [part.strip() for part in ingredient_line.split('|')] if len(parts) == 3: return { 'ingredient_name': parts[0], 'quantity': int(parts[1]), 'measure': parts[2] } return None def read_recipe(file): """Читает один рецепт из файла""" # название блюд name = file.readline().strip() if not name: return None # количество ингредиентов try: count = int(file.readline().strip()) except (ValueError, AttributeError): return None # ингредиенты ingredients = [] for _ in range(count): line = file.readline() if not line: break ingredient = parse_ingredient(line) if ingredient: ingredients.append(ingredient) return {'name': name, 'ingredients': ingredients} def load_cook_book(file_path): """Загружает кулинарную книгу из файла""" cook_book = {} try: with open(file_path, 'r', encoding='utf-8') as file: while True: # Читаем рецепт recipe = read_recipe(file) if not recipe: break # Добавляем в кулинарную книгу cook_book[recipe['name']] = recipe['ingredients'] # пустая строка между рецептами file.readline() except FileNotFoundError: print(f"Ошибка: файл {file_path} не найден") except Exception as e: print(f"Ошибка при чтении файла: {e}") return cook_book def print_cook_book(cook_book): """Выводит кулинарную книгу в удобном формате""" from pprint import pprint pprint(cook_book) def main(): """Основная функция программы""" # Загрузка кулинарной книги cook_book = load_cook_book('recipes.txt') # Вывод print_cook_book(cook_book) # Возвращаем cook_book для использования в других модулях return cook_book if __name__ == '__main__': main()