Ir para conteúdo
Fórum Script Brasil
  • 0

Atualiza Cadastro em Arquivo TXT


danielRodrigues

Pergunta

def atualizaCliente():
nomeClienteConsulta = input("Entre com o nome para fazermos fazer a busca :")
arquivo = open("dados.txt").readlines()
controler = -1
arquivo = [str(x).rstrip() for x in arquivo]
controler +=1
for linha in arquivo:
if nomeClienteConsulta.title() in linha:
lista = linha
lista = lista.split(',')
print("Cliente encontrado")
print("Deseja atualizar qual dado :")
opcao = int(input("1) Nome.\n2) Idade.\n3) Endereco.\n4) Todos os dados.\n"))
if (opcao == 1):
newNome = input("Entre com o novo nome :")
newLista = linha.replace(lista[0], newNome.title())
print(newLista)
lista = str(newLista)
dado = str(lista)
arquivo = open("dados.txt","a")
arquivo.write(dado + '\n')
Pessoal o Código acima realiza uma consulta e atualiza porem quando adiciona os dados novamente os dados estão em forma
de uma string só e não uma lista alguém pode me Ajudar ?
Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

ola daniel

tenho uma sugestão

for linha in arquivo:
if nomeClienteConsulta.title() in linha:
lista = linha.split(',')
print("Cliente encontrado")
print("Deseja atualizar qual dado :")
opcao = int(input("1) Nome.\n2) Idade.\n3) Endereco.\n4) Todos os dados.\n"))
if (opcao == 1):
newNome = input("Entre com o novo nome :")
lista.pop(0)
lista.insert(0, newNome)
print(lista)
arquivo = open("dados.txt","a")
arquivo.write(lista + '\n')
Eu não reconstruí o script para testar esta sugestão, agora cabe a você fazer isso
Link para o comentário
Compartilhar em outros sites

  • 0

ArteEN Obrigado por me dar um FeedBack, Porem ele não esta substituindo o antigo Dado.

No arquivo fica assim

Antes - ['Daniel Rodrigues da Silva', '18', 'Newton Atheniel']

depois - ['daniel Rodrigues da Silva', '18', 'Newton Atheniel']['Maria Rodrigues', ' 18', ' Newton Atheniel']

Editado por danielRodrigues
Link para o comentário
Compartilhar em outros sites

  • 0

ola daniel

primeiro deixa eu me corrigir, é que da para melhorar minha sugestão

esta parte:

  • lista.pop(0)
  • lista.insert(0, newNome)
da para ser assim:
  • lista[0] = newNome
-----
Agora o motivo de não substituir o dado vem do 'a' usado na abertura do arquivo:
  • arquivo = open("dados.txt","a")
Este 'a' serve para adicionar uma escrita no final do arquivo, ele não serve para escrever por cima
o que pode ser feito é substituir a linha antiga no:
  • arquivo = open("dados.txt").readlines()
Para isso você tem que saber o index da linha que sera atualizada e substituir pela nova linha.
E escrever o arquivo inteiro usando:
  • arquivo_atualizado = open("dados.txt","w")
  • arquivo_atualizado.write(arquivo)
Editado por ArteEN
Link para o comentário
Compartilhar em outros sites

  • 0

Deixa eu ver se entendi:

def atualizaCliente():
nomeClienteConsulta = input("Entre com o nome para fazermos fazer a busca :")
arquivo = open("dados.txt").readline() # irei excluir esta linha de código
# e colocar :
#arquivo_atualizado = open("dados.txt","w")
#arquivo_atualizado.write(arquivo)
arquivo = [str(x).rstrip() for x in arquivo]
for linha in arquivo:
if nomeClienteConsulta.title() in linha:
lista = linha.split(',')
print("Cliente encontrado")
print("Deseja atualizar qual dado :")
opcao = int(input("1) Nome.\n2) Idade.\n3) Endereco.\n4) Todos os dados.\n"))
if (opcao == 1):
newNome = input("Entre com o novo nome :")
lista[0] = newNome
print(lista)
arquivo = open("dados.txt","a")
arquivo.write(arquivo)
isso ou não ?
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...