import os from pathlib import Path from os import system mi_ruta = Path(Path.home(), "Recetas") def contar_recetas(ruta): contador = 0 for txt in Path(ruta).glob("**/*.txt"): contador += 1 return contador def inicio(): system('cls') print('*' * 50) print('*' * 5 + " Bienvenido al administrador de recetas " + '*' * 5) print('*' * 50) print('\n') print(f"Las recetas se encuentran en {mi_ruta}") print(f"Total recetas: {contar_recetas(mi_ruta)}") eleccion_menu = 'x' while not eleccion_menu.isnumeric() or int(eleccion_menu) not in range(1,7): print("Elige una opcion:") print(''' [1] - Leer receta [2] - Crear receta nueva [3] - Crear categoria nueva [4] - Eliminar receta [5] - Eliminar categoria [6] - Salir del programa''') eleccion_menu = input() return int(eleccion_menu) def mostrar_categorias(ruta): print("Categorias:") ruta_categorias = Path(ruta) lista_categorias = [] contador = 1 for carpeta in ruta_categorias.iterdir(): carpeta_str = str(carpeta.name) print(f"[{contador}] - {carpeta_str}") lista_categorias.append(carpeta) contador += 1 return lista_categorias def elegir_categoria(lista): eleccion_correcta = 'x' while not eleccion_correcta.isnumeric() or int(eleccion_correcta) not in range(1, len(lista) + 1): eleccion_correcta = input("\nElije una categoria: ") return lista[int(eleccion_correcta) - 1] def mostrar_recetas(ruta): print("Recetas:") ruta_recetas = Path(ruta) lista_recetas = [] contador = 1 for receta in ruta_recetas.glob('*.txt'): receta_str = str(receta.name) print(f"[{contador}] - {receta_str}") lista_recetas.append(receta) contador += 1 return lista_recetas def elegir_recetas(lista): eleccion_receta = 'x' while not eleccion_receta.isnumeric() or int(eleccion_receta) not in range(1, len(lista) + 1): eleccion_receta = input("\nElije una receta: ") return lista[int(eleccion_receta) - 1] def leer_receta(receta): print(Path.read_text(receta)) def crear_receta(ruta): existe = False while not existe: print("Escribe el nombre de tu receta: ") nombre_receta = input() + '.txt' print("Escribe tu nueva receta: ") contenido_receta = input() ruta_nueva = Path(ruta, nombre_receta) if not os.path.exists(ruta_nueva): Path.write_text(ruta_nueva, contenido_receta) print(f"Tu receta {nombre_receta} ha sido creada") existe = True else: print("Lo siento, esa receta ya existe") def crear_categoria(ruta): existe = False while not existe: print("Escribe el nombre de la nueva categoria: ") nombre_categoria = input() ruta_nueva = Path(ruta, nombre_categoria) if not os.path.exists(ruta_nueva): Path.mkdir(ruta_nueva) print(f"Tu nueva categoria {nombre_categoria} ha sido creada") existe = True else: print("Lo siento, esa categoria ya existe") def eliminar_receta(receta): Path(receta).unlink() print(f"La receta {receta.name} ha sido eliminada") def eliminar_categoria(categoria): Path(categoria).rmdir() print(F"La categoria {categoria.name} ha sido eliminada") def volver_inicio(): eleccion_regresar = 'x' while eleccion_regresar.lower() != 'v': eleccion_regresar = input("\nPresione V para volver al menu: ") finalizar_programa = False while not finalizar_programa: menu = inicio() if menu == 1: mis_categorias = mostrar_categorias(mi_ruta) mi_categoria = elegir_categoria(mis_categorias) mis_recetas = mostrar_recetas(mi_categoria) mi_receta = elegir_recetas(mis_recetas) leer_receta(mi_receta) volver_inicio() elif menu == 2: mis_categorias = mostrar_categorias(mi_ruta) mi_categoria = elegir_categoria(mis_categorias) crear_receta(mi_categoria) volver_inicio() elif menu == 3: crear_categoria(mi_ruta) volver_inicio() elif menu == 4: mis_categorias = mostrar_categorias(mi_ruta) mi_categoria = elegir_categoria(mis_categorias) mis_recetas = mostrar_recetas(mi_categoria) mi_receta = elegir_recetas(mis_recetas) eliminar_receta(mi_receta) volver_inicio() elif menu == 5: mis_categorias = mostrar_categorias(mi_ruta) mi_categoria = elegir_categoria(mis_categorias) eliminar_categoria(mi_categoria) volver_inicio() elif menu == 6: finalizar_programa = True