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

Comparando tabelas e extraindo a diferença


Thiago lrd

Pergunta

Galera preciso de uma ajuda, estou fazendo um scrip para ler dois arquivos que contenham somente numeros, nesse script pretendo extrair a diferença entre os dois arquivos. Exemplo: Tabela1 (padrão) possui todos os códigos, e tabela2 que contem alguns códigos que nem sempre existem na tabela1. A duvida é preciso extrair todos os códigos inexistentes da tabela2 na tabela1, o que usar "set", "map" e como usar.

#import re

with open("/home/thiago/Download/fontes/tipi.txt", "r") as f:
	tabela_A = set(f.read().split())
	for line in tabela_A: 
       		line = line.rstrip() 
        		for match in re.findall (r"\d{4}\.\d{2}\.\d{2}", line):
        			print match.replace('.',"")

with open("/home/thiago/Download/tabela.csv", "r") as f:
	tabela_B = set(f.read().split())
	for line in tabela_B:
		line = line.rstrip()
		for codigo in tabela_B:
			if codigo not in tabela_B:
				print line.strip()

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Ola Thiago

Um set é um array que não tem elementos repetidos dentro de si

a = [1, 2, 3]
b = [1, 2]
c = a + b

print(c)
1, 2, 3, 1, 2

d = set(c)

print(d)
1, 2, 3 

você pode usar uma compreensão de lista no lugar do map

lista = [função(x) for x in outra_lista]
Link para o comentário
Compartilhar em outros sites

  • 0

Obrigado, Elton.

Os dois arquivos posseum códigos, ambos com 8 caracteres esses códigos não se repetem dentro do mesmo arquivos, a intenção do script é justamente determinal qual é o codigo da tabela_B que não existe na tabela_A.

Ex: tabela_A = tabela referencia(00000000,00000001,00000002,00000003)

tabela_B = tabela comparada(00000000,00000012,00000002,00000003)

(tabela_A - tabela_B) retorna "00000012"

A duvida é que no meu script eu estou juntando as duas tabelas e não conseguindo extrair a diferença.

Link para o comentário
Compartilhar em outros sites

  • 0

Certo camarada, então você pode usar compreensão de lista nesse caso, segue um curto exemplo

a = [1, 2, 3, 4]
b = [1, 2, 3, 5]

c = [x for x in b if x not in a] #troque a posição de 'a' e 'b' para verificar a outra lista

print(c)
5
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
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...