Renomear Múltiplos Arquivos em Lote Adicionando Prefixo ou Data em Python
Renomear Múltiplos Arquivos em Lote Adicionando Prefixo ou Data em Python
Ajustar manualmente o nome de dezenas ou centenas de arquivos é uma tarefa repetitiva e propensa a erros na rotina de TI. Este script em Python automatiza a renomeação em lote, percorrendo um diretório específico e adicionando um prefixo personalizado ou a data atual (ou de modificação) ao nome de cada arquivo. É a solução ideal para organizar relatórios, logs, backups ou arquivos de mídia de forma rápida e padronizada.
Python
import os
from datetime import datetime
def renomear_arquivos_em_lote(caminho_pasta: str, prefixo: str = "", adicionar_data: bool = True) -> None:
"""Adiciona prefixo e/ou data atual ao nome de todos os arquivos em um diretório."""
if not os.path.exists(caminho_pasta):
print(f"Erro: O diretório '{caminho_pasta}' não foi encontrado.")
return
# Formatar a data atual no padrão YYYYMMDD
data_formatada = datetime.now().strftime("%Y%m%d_") if adicionar_data else ""
for nome_arquivo in os.listdir(caminho_pasta):
caminho_antigo = os.path.join(caminho_pasta, nome_arquivo)
# Processa apenas arquivos, ignorando subpastas
if os.path.isfile(caminho_antigo):
# Monta o novo nome com os prefixos desejados
novo_nome = f"{prefixo}{data_formatada}{nome_arquivo}"
caminho_novo = os.path.join(caminho_pasta, novo_nome)
# Evita renomear se o arquivo já possui a modificação
if caminho_antigo != caminho_novo:
os.rename(caminho_antigo, caminho_novo)
print(f"Renomeado: '{nome_arquivo}' -> '{novo_nome}'")
# --- Exemplo de uso prático ---
if __name__ == "__main__":
diretorio_exemplo = "./documentos_teste"
# Criando estrutura e arquivos fictícios para demonstração
os.makedirs(diretorio_exemplo, exist_ok=True)
for f in ["relatorio1.pdf", "contrato.docx", "dados.txt"]:
open(os.path.join(diretorio_exemplo, f), "a").close()
# Executa a renomeação adicionando o prefixo 'PROJETO_' e a data atual
renomear_arquivos_em_lote(
caminho_pasta=diretorio_exemplo,
prefixo="PROJETO_",
adicionar_data=True
)
Pontos-chave
os.rename(src, dst): Função nativa responsável por alterar o nome do arquivo diretamente no sistema operacional.datetime.now().strftime(): Permite customizar a formatação da data/hora (ex:%Y%m%dpara20261023ou%Y-%m-%dpara2026-10-23), garantindo ordenação cronológica automática dos arquivos.- Validação com
os.path.isfile(): Essencial para evitar que subdiretórios dentro da pasta alvo sejam acidentalmente renomeados como se fossem arquivos. - Risco de Sobrescrita: Se o novo nome gerado já existir na pasta, o
os.rename()irá sobrescrevê-lo no Linux/macOS ou lançar um erroFileExistsErrorno Windows. Adicione verificações comos.path.exists(caminho_novo)em ambientes críticos.

Comentários
Postar um comentário