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.