O módulo filecmp compara arquivos e resume diferenças entre diretórios sem dependências externas. A decisão principal é escolher entre uma verificação superficial, baseada em assinatura, e a leitura efetiva do conteúdo.
Compare o conteúdo de dois arquivos
from filecmp import cmp
from pathlib import Path
from tempfile import TemporaryDirectory
with TemporaryDirectory() as folder:
left = Path(folder, "a.txt")
right = Path(folder, "b.txt")
left.write_text("Python\n", encoding="utf-8")
right.write_text("Python\n", encoding="utf-8")
assert cmp(left, right, shallow=False)
Interprete dircmp corretamente
dircmp separa nomes exclusivos, arquivos comuns, subdiretórios e itens problemáticos. Seus atributos são calculados sob demanda. Ele não produz um diff textual e não deve ser tratado como verificação criptográfica.
Escolha o nível de garantia
Use shallow=False quando o conteúdo precisa ser lido. Para integridade persistente ou adversarial, compare hashes adequados e registre o algoritmo. Considere permissões, links simbólicos e erros de acesso no fluxo.
Continue estudando
Leia também integridade de arquivos com hashlib. A documentação oficial do Python, consultada em 22 de julho de 2026, explica cache, comparação superficial e relatórios de diretórios.