Processar grandes volumes de dados e identificar registros duplicados é uma tarefa comum, mas trabalhosa. Gerar um hash para cada linha de um arquivo é o método mais eficiente e confiável para deduplicação, pois transforma cada registro em uma assinatura única, permitindo comparações rápidas e precisas.
Escreva um script Python que leia o arquivo, gere um hash para cada linha e salve os resultados. O hash MD5 é amplamente usado para esta finalidade devido à sua velocidade e baixa probabilidade de colisão em conjuntos de dados típicos.
import hashlib
def gerar_hash_arquivo(arquivo_entrada, arquivo_saida):
with open(arquivo_entrada, 'r', encoding='utf-8') as f:
linhas = f.readlines()
hashes = []
for linha in linhas:
linha = linha.strip()
hash_md5 = hashlib.md5(linha.encode('utf-8')).hexdigest()
hashes.append(f"{linha}\t{hash_md5}")
with open(arquivo_saida, 'w', encoding='utf-8') as f:
f.write('\n'.join(hashes))
if __name__ == "__main__":
gerar_hash_arquivo('dados.txt', 'hashes.txt')
Salve o código em um arquivo, por exemplo, gerar_hash.py. Coloque seu arquivo de dados (ex: dados.txt) na mesma pasta. Execute o script no terminal:
python gerar_hash.py
Após a execução, será gerado um arquivo hashes.txt contendo cada linha original seguida do seu hash MD5 correspondente, separados por uma tabulação.
Com o arquivo de hashes, você pode facilmente identificar duplicatas. Use um comando como sort e uniq no Linux ou um script adicional em Python para filtrar hashes repetidos. No Linux, por exemplo:
sort hashes.txt | uniq -d
Este comando exibirá apenas as linhas (e seus hashes) que aparecem mais de uma vez, facilitando a remoção de duplicatas.
Veja abaixo um exemplo de como o script processa um arquivo de entrada e gera o arquivo de hashes:
| Arquivo de Entrada (dados.txt) | Arquivo de Saída (hashes.txt) |
|---|---|
| João Silva | João Silva b7e23bf9c7b8e7e5e9e5b8e7e5b8e7e5 |
| Maria Santos | Maria Santos e10adc3949ba59abbe56e057f20f883e |
| João Silva | João Silva b7e23bf9c7b8e7e5e9e5b8e7e5b8e7e5 |
Com este método, você automatiza a tarefa de deduplicação em segundos, evitando erros manuais e garantindo a integridade dos seus dados. O uso de hashes torna o processo escalável e seguro, mesmo para grandes conjuntos de informações.