/
evinbits
/
12334
Обзор
Документация
Войти
/
evinbits
/
12334
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
Untitled-1.py
119 строк
4 KB
EVI
Initial commit
12 июл 2025, 23:24
12 июл 2025, 23:24
765e7d9
Код
Авторство
О чём код?
def read_cook_book(filename): cook_book = {} try: with open(filename, 'r', encoding='utf-8') as f: while True: dish_name = f.readline().strip() if not dish_name: break ingredient_count = int(f.readline().strip()) ingredients = [] for _ in range(ingredient_count): line = f.readline().strip() ingredient_name, quantity, measure = line.split(' | ') ingredients.append({ 'ingredient_name': ingredient_name, 'quantity': int(quantity), 'measure': measure }) f.readline() cook_book[dish_name] = ingredients except FileNotFoundError: print(f"Файл '{filename}' не найден.") return {} except Exception as e: print(f"Ошибка при чтении файла '{filename}': {e}") return {} return cook_book def get_shop_list_by_dishes(dishes, person_count, cook_book): shop_list = {} for dish in dishes: if dish in cook_book: for ingredient in cook_book[dish]: ingredient_name = ingredient['ingredient_name'] quantity = ingredient['quantity'] * person_count measure = ingredient['measure'] if ingredient_name in shop_list: shop_list[ingredient_name]['quantity'] += quantity else: shop_list[ingredient_name] = {'measure': measure, 'quantity': quantity} else: print(f"Блюдо '{dish}' не найдено в кулинарной книге.") return shop_list import os def combine_files(file_list, output_file): file_data = [] for filename in file_list: try: with open(filename, 'r', encoding='utf-8') as f: lines = f.readlines() file_data.append((filename, len(lines), lines)) except FileNotFoundError: print(f"Файл '{filename}' не найден.") return file_data.sort(key=lambda x: x[1]) with open(output_file, 'w', encoding='utf-8') as outfile: for filename, line_count, lines in file_data: outfile.write(f"{filename}\n") outfile.write(f"{line_count}\n") outfile.writelines(lines) def test_combine_files(): with open("1.txt", "w", encoding="utf-8") as f: f.write("Строка номер 1 файла номер 1\n") f.write("Строка номер 2 файла номер 1\n") with open("2.txt", "w", encoding="utf-8") as f: f.write("Строка номер 1 файла номер 2\n") combine_files(["1.txt", "2.txt"], "output.txt") with open("output.txt", "r", encoding="utf-8") as f: print(f.read()) os.remove("1.txt") os.remove("2.txt") os.remove("output.txt") def create_recipes_txt(): with open("recipes.txt", "w", encoding="utf-8") as f: f.write("Омлет\n") f.write("3\n") f.write("Яйцо | 2 | шт.\n") f.write("Молоко | 100 | мл\n") f.write("Помидор | 2 | шт.\n") f.write("\n") f.write("Утка по-пекински\n") f.write("4\n") f.write("Утка | 1 | шт\n") f.write("Вода | 2 | л\n") f.write("Мед | 3 | ст.л\n") f.write("Соевый соус | 60 | мл\n") f.write("\n") f.write("Запеченный картофель\n") f.write("3\n") f.write("Картофель | 1 | кг\n") f.write("Чеснок | 3 | зубч\n") f.write("Сыр гауда | 100 | г\n") f.write("\n") if __name__ == '__main__': create_recipes_txt() cook_book = read_cook_book("recipes.txt") if cook_book: shop_list = get_shop_list_by_dishes(['Омлет', 'Утка по-пекински'], 2, cook_book) print(shop_list) test_combine_files() os.remove("recipes.txt")