[Python] Renomeação de arquivo com Python, não consigo renomear os aquivos pois nao encontra o...

Discussão em 'Python' iniciado por Stack, Fevereiro 5, 2025.

  1. Stack

    Stack Membro Participativo

    import os
    import re
    from datetime import datetime
    import shutil

    # Caminho absoluto da pasta principal
    pasta_principal = r"C:\Users\Easyjur01\Desktop\Suporte\Registro de Atas de Reuniões"

    # Função para validar e formatar datas
    def format_date(date_str):
    try:
    # Converter o formato de 'dd_mm_yyyy' para 'dd/mm/yyyy'
    formatted_date = datetime.strptime(date_str, "%d_%m_%Y").strftime("%d/%m/%Y")
    return formatted_date
    except ValueError:
    return None

    # Função para renomear arquivos em uma pasta
    def rename_files_in_directory(pasta):
    if not os.path.exists(pasta):
    print(f"Pasta não encontrada: {pasta}")
    return

    for nome_arquivo in os.listdir(pasta):
    caminho_arquivo = os.path.join(pasta, nome_arquivo)

    # Verifica se é um arquivo e aplica o regex para o formato especificado
    if os.path.isfile(caminho_arquivo):
    print(f"Processando arquivo: {caminho_arquivo}")
    match = re.match(r"\[(\d{2}_\d{2}_\d{4})\]\+([A-Za-z-]+)\+-\+(.+?)\.doc", nome_arquivo)

    if match:
    old_date, meeting_type, day_of_week = match.groups()

    # Formatar a data corretamente
    formatted_date = format_date(old_date)
    if not formatted_date:
    continue

    # Ajustar o nome do tipo de reunião
    meeting_type = meeting_type.replace("-", " ").strip()

    # Novo nome do arquivo
    novo_nome_arquivo = f"[{formatted_date}] - {meeting_type} - {day_of_week.strip()}.doc"
    caminho_novo = os.path.join(pasta, novo_nome_arquivo)

    # Renomear o arquivo
    try:
    os.rename(caminho_arquivo, caminho_novo)
    print(f"Renomeado: '{nome_arquivo}' -> '{novo_nome_arquivo}'")
    except FileExistsError:
    print(f"Erro: '{novo_nome_arquivo}' já existe.")
    except FileNotFoundError:
    print(f"Erro: Arquivo '{caminho_arquivo}' não encontrado.")
    except Exception as e:
    print(f"Erro ao renomear '{nome_arquivo}': {e}")

    # Itera sobre todas as pastas no diretório principal
    for raiz, pastas, arquivos in os.walk(pasta_principal):
    print(f"Explorando pasta: {raiz}")
    for nome_pasta in pastas:
    caminho_pasta = os.path.join(raiz, nome_pasta)
    rename_files_in_directory(caminho_pasta)

    print("Renomeação concluída com sucesso!")

    Continue reading...

Compartilhe esta Página