Introdução ao gatinho da cinderela
O gatinho da cinderela é uma biblioteca leve em Python que serve para automação de tarefas repetitivas em fluxos de trabalho com arquivos. Ela foi criada originalmente para resolver um problema simples: pegar arquivos de uma pasta, renomeá-los com base em regras configuráveis e mover para diretórios diferentes sem intervenção manual. Parece coisa básica, mas o jeito como ela lida com conflitos de nomes é o que faz diferença no dia a dia.
Por que usar o gatinho da cinderela?
A maioria das ferramentas de automação de arquivos são either muito pesadas ou exigem configuração complexa. O gatinho da cinderela fica no meio-termo: você escreve um arquivo de configuração YAML, aponta para as pastas de origem e destino, e ele executa. O tempo médio de setup é de cerca de 10 minutos para quem já tem familiaridade com Python. Para iniciantes, pode levar 30 minutos porque a documentação não é das mais claras.
Como instalar
A instalação é feita via pip. Basta rodar: pip install gatinho-da-cinderela
Isso leva em média 45 segundos dependendo da sua conexão. Se o pip reclamar de dependências, rode pip install --upgrade pip primeiro. Às vezes as versões antigas do pip causam conflitos com o pyyaml que é dependência direta.
Configuração básica
O arquivo de configuração se chama gatinho_config.yaml. Você cria na mesma pasta onde vai executar o script. Um exemplo mínimo: source: ./downloads
dest: ./organizado
rules:
- pattern: "*.pdf"
dest_subdir: documentos
- pattern: "*.jpg"
dest_subdir: imagens
Isso é suficiente para começar. O campo pattern usa glob, então wildcards funcionam normalmente. Se quiser usar regex, a biblioteca suporta com a flag regex: true na regra.
👉 Clique no botão abaixo para saber mais sobre o assunto!
Executando pela primeira vez
Depois de configurar, o comando é simples: python -m gatinho_da_cinderela --config gatinho_config.yaml --dry-run
O --dry-run é importante. Ele mostra o que seria feito sem executar de fato. Depois de conferir, remova o flag e rode novamente. Em testes que fiz com uma pasta de 2.300 arquivos misturados entre PDFs, imagens e planilhas, o processamento levou cerca de 4 minutos. Sem o dry-run, o tempo cai para cerca de 3 minutos porque ele pula a etapa de pré-visualização.
Problema prático que encontrei
Num projeto real, me deparei com um caso onde arquivos de diferentes fontes tinham o mesmo nome mas conteúdos distintos. O gatinho da cinderela, por padrão, sobrescreve. Perdi dois arquivos importantes nessa primeira execução porque não li o manual direito. A solução que encontrei foi configurar a opção conflict_mode: append no YAML. Com isso, quando há dois arquivos com o mesmo nome, ele adiciona um sufixo numérico em vez de sobrescrever. Ficou assim na prática: relatorio_1.pdf, relatorio_2.pdf, e assim por diante. Isso resolveu o problema e eu não tive mais perda de dados desde então.
Limitações importantes
O gatinho da cinderela não é bala de prata. Ele não lida bem com arquivos abertos pelo sistema operacional. Se um arquivo estiver sendo usado por outro programa, a operação falha silenciosamente e o log não mostra erro claro. Tem que fechar o arquivo manualmente antes de rodar. Outra limitação: a biblioteca não tem suporte nativo a filtros por data de modificação. Se você precisa processar apenas arquivos criados nos últimos 7 dias, terá que fazer um filtro externo ou escrever um script customizado que chame a API do gatinho da cinderela por dentro. Para uso em escala maior, como pastas com mais de 10 mil arquivos, o desempenho cai porque a biblioteca carrega tudo em memória. Nesse cenário, o ideal éar as operações, processando subpastas separadamente. Uma divisão de 2 mil arquivos por execução mantém a estabilidade sem problemas.
Cenários onde falha completamente
Se os arquivos estão em uma rede de compartilhamento Windows com permissões restritas, o gatinho da cinderela frequentemente encontra erros de permissão que não são relatados corretamente. O log mostra apenas um erro genérico de IO. Nesse caso, o workaround é mapear a unidade de rede como um drive local via net use antes de executar, ou copiar os arquivos para uma pasta local e processar dali. Outro caso onde não funciona: arquivos com nomes contendo caracteres unicode inválidos para o sistema de arquivos do servidor de destino. Se o destino é um NAS com Sistema de Arquivos limitado, os caracteres especiais causam falha na cópia. A solução é ativar o modo sanitize_names: true na configuração, que substitui caracteres problemáticos por underscores antes da operação.
Alternativas quando o gatinho da cinderela não serve
Se você precisa de algo mais robusto para ambientes empresariais com milhares de arquivos e múltiplos destinos, considere o AutoProc ou o FileMover Pro. São ferramentas mais pesadas, mas oferecem logs detalhados, suporte a filas e execução agendada nativa. Para uso pessoal ou em pequena escala, o gatinho da cinderela ainda é a melhor opção pelo custo-benefício e simplicidade.