Como salvar os dados em um arquivo na saída do código e fazer com que ele seja lido sempre que rodar esse mesmo comando em Python?

Essa seria a questão:

Escreva um programa para criar uma lista de tuplas contendo quatro itens relativos a uma mesma pessoa: (nome, email, dia nascimento, mês nascimento). Implemente funções para fazer um cadastro: incluir(), consultar(), consultar_aniversariante(), listar() O programa deverá implementar um laço principal na função main(), apresentando as opções disponíveis, bem como uma opção para encerrar a execução. Implemente um menu de opções em forma de uma função. Use um arquivo texto para salvar os dados. Esse arquivo deverá ser lido a cada vez que o programa começar e deverá ser gravado a cada vez que o programa terminar.

lista=[]
tuplalistas = ()
def Incluir(lista):
    opincluir = 'S'
    while opincluir != 'N' and opincluir != 'n':
        nome = str(input('Digite seu nome: ')).lower() 
        nomenovo = ''
        vetor = nome.split(' ') 
        for palavra in vetor: 
            if palavra != '':
                nomenovo = nomenovo + palavra[0:1].upper() + palavra[1:] + ' '            
        email = str(input('Digite seu E-mail: '))
        dias = int(input('Digite o dia do seu aniversário: '))
        mes = int(input('Digite o mês do seu nascimento: '))
        
        tuplalistas = (nomenovo,email,dias,mes)
        lista.append(tuplalistas)
        
        opincluir = input('Deseja incluir mais alguém? S/N')
    
def Listar(lista):
    print(f'\n''As pessoas inclusas nessa lista são:'f'\n')
    for i in range(0,len(lista)):
        print('Pessoa:', i+1,lista[i])

aniversariantes = []            
def Consultar_Aniversariantes(lista):
    opaniversariante = 'S'
    
    while opaniversariante != 'n' and opaniversariante !='N':
        diadehoje = int(input('Informe o dia desejado: '))
        mesdehoje = int(input('Informe o mês desejado: '))
        for i in range(0,len(lista)):
            if diadehoje==lista[i][2] and mesdehoje==lista[i][3]:
                aniversariantes.append(lista[i][0]) 
        if len(aniversariantes) != 0:
            print(f'\n''Aniversariante(s) do dia: ', aniversariantes)
            aniversariantes.clear()
        else:
            print('Não há aniversariante(s) no dia mencionado')
        opaniversariante = input('Deseja consultar outra data? S/N')

def Consultar(lista):
    nomeconsulta = str(input('Insira um nome para consulta: ')).lower()
    nomenovo2 = ''
    saida = 0
    vetor = nomeconsulta.split(' ') 
    for palavra in vetor: 
        if palavra != '':
            nomenovo2 = nomenovo2 + palavra[0:1].upper() + palavra[1:] + ' ' 
    for i in range(0,len(lista)):
        if nomenovo2 == lista[i][0]:
            print(' ')
            print('Pessoa: ',nomenovo2)
            print('Email: ',lista[i][1])
            print('Aniversário: {}/{}'.format(lista[i][2],lista[i][3]))
            saida = 1
    if saida ==0:
        print('Este nome não está incluso em nossa lista')
        
def main():
    x = 'S'
    while x != 'e' and x != 'E':
        x = input(f'\nOpções disponíveis:'
                   f'\n(I)ncluir'
                   f'\n(C)onsultar'
                   f'\nConsultar (A)niversariantes'
                   f'\n(L)istar'
                   f'\n(E)ncerrar'
                   f'\nDigite a sua escolha:')
        if x == 'I':
            Incluir(lista)
        elif x == 'L':
            Listar(lista)
        elif x=='C':
            Consultar(lista)
        elif x=='A':
            Consultar_Aniversariantes(lista)
            
        elif x=='E':
            print('Fim')
        else:
            print(f'\nCOMANDO INVÁLIDO')
    
main()

Alguém poderia me explicar como eu faria para terminar essa questão, na parte do “Use um arquivo texto para salvar os dados. Esse arquivo deverá ser lido a cada vez que o programa começar e deverá ser gravado a cada vez que o programa terminar.”