Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Ler ultima linha & gravar

Na classe conta, pego o numero da conta a ser criada de um TXT.

def Idconta():
    with open("idconta.txt","r") as t:
            ultima_linha = t.readlines()[-1]
            idconta = int(ultima_linha) + 1
            ### aqui gostaria de adicionar o conteúdo de idconta ao arquivo idconta.txt###
            return(idconta)


from Idconta import Idconta
class Conta:

    def __init__(self,titular,saldo,limite):
        print("Construindo objeto...{}".format(self))
        self.numero =  Idconta()  
        self.titular = titular
        self.saldo = saldo
        self.limite = limite
        print("Conta {0} de {1}".format(self.numero,self.titular))

Dentro da função Idconta( ) , gostaria de após ler a ultima linha do arquivo TXT, adicionar uma linha com o conteúdo da variavel idconta (valor da ultima linha lida + 1).

Neste teste, gostaria de manter as linhas anteriores e adicionar mais uma.

Entendo que do ponto de vista lógico, poderia sobrescrever o conteúdo do arquivo e manter somente o ultimo registro, mas este é um teste didático.

Como faço para ler e escrever dentro da função Idconta. É possível essa operação?

Outra pergunta, é possível executar algum bloco de código após o return?

Obrigado desde já!

1 resposta
solução!

Olá,

Na hora de abrir o arquivo você precisa passar o argumento 'a' no lugar de 'r'. r é para read - leitura w é para write - escrita, e vai sobrescrever o arquivo a é de append, consegue escrever ao final do arquivo

Nesse caso após ler o arquivo, fora do seu with é só abrir com 'a' no lugar de 'r' e usar t.write() para escrever. Lembrando que a função write só aceita texto como parâmetro e pode ser necessário passar '\n' no texto para indicar nova linha.