Oii, Marcos!
Você está no caminho certo ao usar listas de dicionários para armazenar os dados dos restaurantes. Porém, ao executar o programa novamente, os dados não são salvos automaticamente, pois ficam apenas na memória temporária (RAM). Assim que o programa é fechado, tudo é perdido.
Para resolver isso, você pode usar um arquivo externo para persistir os dados. Um jeito de fazer isso é usar JSON. Vou te mostrar como salvar e carregar os restaurantes usando o módulo json
.
Atualize seu código com essas etapas:
1. Adicione o import json
no início:
import json
2. Crie funções para salvar e carregar os dados:
ARQUIVO_RESTAURANTES = 'restaurantes.json'
def carregar_restaurantes():
try:
with open(ARQUIVO_RESTAURANTES, 'r') as arquivo:
return json.load(arquivo)
except FileNotFoundError:
return []
def salvar_restaurantes():
with open(ARQUIVO_RESTAURANTES, 'w') as arquivo:
json.dump(restaurantes, arquivo, indent=4)
3. Substitua a lista fixa por:
restaurantes = carregar_restaurantes()
4. Depois de qualquer modificação nos dados, salve:
Dentro da função cadastrar_novo_restaurante
(e outras que alteram a lista), adicione:
salvar_restaurantes()
Exemplo da função alterada:
def cadastrar_novo_restaurante():
exibir_subtitulo('Cadastro de novos restaurantes')
nome_do_restaurante = input('Digite o nome do restaurante que deseja cadastrar: ')
categoria = input(f'Digite o nome da categoria do restaurante {nome_do_restaurante}: ')
dados_do_restaurante = {'nome':nome_do_restaurante, 'categoria':categoria, 'ativo':False}
restaurantes.append(dados_do_restaurante)
salvar_restaurantes()
print(f'O restaurante {nome_do_restaurante} foi cadastrado com sucesso!')
voltar_ao_menu_principal()
Com essas mudanças, os dados dos restaurantes ficarão salvos em um arquivo JSON. Sempre que rodar o programa de novo, ele irá carregar a lista do arquivo, permitindo continuar de onde parou.
Vou mandar o código completo na continuação na resposta abaixo.