ragfica.pages.dev

Como extrair data de nome de pasta com padrão fixo

Extrair datas de nomes de pastas com um padrão fixo pode parecer simples, mas fazer isso manualmente para centenas de pastas é um trabalho tedioso e propenso a erros. Com uma abordagem automatizada, você transforma uma tarefa repetitiva em um processo rápido e infalível, economizando tempo e garantindo precisão.

Pré-requisitos

Identificando o padrão do nome da pasta

Antes de extrair a data, é fundamental identificar o padrão exato do nome da pasta. Por exemplo, se as pastas seguem o formato "Projeto_YYYYMMDD_Nome", a data está sempre nas posições 9 a 16 do nome. Reconhecer esse padrão é o primeiro passo para criar uma solução robusta.

Extraindo a data com Python

Com Python, você pode automatizar a extração de datas de nomes de pastas usando o módulo os para listar as pastas e datetime para validar as datas encontradas. O script abaixo percorre todas as pastas em um diretório e extrai a data com base na posição fixa.

import os
from datetime import datetime

def extrair_data_pasta(diretorio, posicao_inicio=9, posicao_fim=17):
    pastas = [d for d in os.listdir(diretorio) if os.path.isdir(os.path.join(diretorio, d))]
    datas_extraidas = []

    for pasta in pastas:
        data_str = pasta[posicao_inicio:posicao_fim]
        try:
            data = datetime.strptime(data_str, '%Y%m%d')
            datas_extraidas.append((pasta, data))
        except ValueError:
            continue

    return datas_extraidas

# Exemplo de uso
diretorio = '/caminho/para/suas/pastas'
resultado = extrair_data_pasta(diretorio)
for pasta, data in resultado:
    print(f"Pasta: {pasta}, Data: {data.strftime('%d/%m/%Y')}")

Extraindo a data com fórmula do Excel

Se os nomes das pastas estão listados em uma planilha do Excel, você pode usar uma fórmula para extrair a data diretamente da célula. Supondo que o nome completo esteja na célula A2 e a data esteja nas posições 9 a 16, use:

=SE(ÉNÚMERO(VALOR(DIREITA(ESQUERDA(A2; 16); 8))), DATA(VALOR(ESQUERDA(DIREITA(ESQUERDA(A2; 16); 8); 4)); VALOR(MID(DIREITA(ESQUERDA(A2; 16); 8); 5; 2)); VALOR(DIREITA(DIREITA(ESQUERDA(A2; 16); 8); 2))), "")

Exemplo Prático

Nome da Pasta Data Extraída
Projeto_20231015_ClienteA 15/10/2023
Projeto_20230920_ClienteB 20/09/2023
Projeto_20231105_ClienteC 05/11/2023

Conclusão

Com este método, você automatiza a extração de datas de nomes de pastas em segundos, eliminando a necessidade de processamento manual e reduzindo drasticamente a chance de erros. A solução é adaptável a diferentes padrões, bastando ajustar as posições das substrings ou a formatação da data.