2
respostas

Programa cria arquivo texto mas não grava nada: nenhum erro ocorre!

f3 = open("arq3.txt","w")

for i,val1 in enumerate(a1):

    if a1[0] in a2:
        for j,val2 in enumerate(a1):
            f3.write("OI")
            f3.write(a1[j])
            f3.write("OI")
f3.close()

a1 e a2 são listas de strings!

a1 = '\n',
 'nome: João Silva\n',
 'Endereço: Rua das flores, 41\n',
 'telefone: 21 9899-96756\n',
 '\n',
 '\n']


a2 = '\n',
 'nome: João Silva\n',
 'Endereço: Rua das flores, 41\n',
 'telefone: 21 9899-96756\n',
 '\n',
 '\n']

Ao final do programa, arq3.txt está VAZIO!

O que está errado?

2 respostas

Eu não entendi muito bem o propósito do código, mas pelo que você mandou as listas estão sem o colchete de abertura. Eu refatorei o código não sei muito bem o que é esperado que aconteça mas ele gera um arquivo de saída com todos os elementos que estão nas duas listas.

a1 = ['\n','nome: João Silva\n','Endereço: Rua das flores, 41\n','telefone: 21 9899-96756\n','\n','\n']

a2 = ['\n','nome: João Silva\n','Endereço: Rua das flores, 41\n','telefone: 21 9899-96756\n','\n','\n']

f3 = open("arq3.txt","w")

for i in a1:
  print (i)

  if i in a2:
          f3.write("OI")
          f3.write(i)
f3.close()

o arquivo de sáida fica assim:

OI OInome: João Silva OIEndereço: Rua das flores, 41 OItelefone: 21 9899-96756 OI OI

Obrigado!

O enunciado era:

Dados dois arquivos concebidos sequencialmente, possuindo as informações descritas nas fichas esquematizadas a seguir, desenvolva um programa que realize uma união desses dados. Essa união implica criar um terceiro arquivo no qual constem apenas dados das pessoas que faziam parte de ambos os arquivos sequenciais. Informações que não possuírem correspondência não deverão existir no terceiro arquivo.