import pandas as pd import os # Caminhos #pasta_entrada = r"C:\Users\andressa.rocha\OneDrive - GRUPO GINSENG\2025\CONSULTA_ESTOQUE" pasta_entrada = r"..\CONSULTA_ESTOQUE" #pasta_saida = r"C:\Users\andressa.rocha\OneDrive - GRUPO GINSENG\2025\SUPRIMENTOS\ANALISE_ESTOQUE\ESTOQUE_UNIFCADO_MES" pasta_saida = r"..\SUPRIMENTOS\ANALISE_ESTOQUE\ESTOQUE_UNIFCADO_MES" os.makedirs(pasta_saida, exist_ok=True) # Lista subpastas subpastas = [os.path.join(pasta_entrada, d) for d in os.listdir(pasta_entrada) if os.path.isdir(os.path.join(pasta_entrada, d))] df_list = [] for subpasta in subpastas: arquivos = [f for f in os.listdir(subpasta) if f.endswith(".csv")] nome_pasta = os.path.basename(subpasta) try: parte_final = nome_pasta.split('_')[-1] data_estoque = pd.to_datetime(parte_final[:8], format="%Y%m%d", errors='coerce') except Exception: data_estoque = pd.NaT for arquivo in arquivos: caminho_arquivo = os.path.join(subpasta, arquivo) try: df = pd.read_csv(caminho_arquivo, encoding="utf-8", low_memory=False) df["Arquivo_Origem"] = arquivo df["Pasta_Origem"] = nome_pasta df["data_estoque"] = data_estoque df_list.append(df) except Exception as e: print(f"Erro ao ler o arquivo {arquivo}: {e}") # Filtrar e salvar o estoque do último dia do mês anterior + máximo dia do mês atual if df_list: df_final = pd.concat(df_list, ignore_index=True) df_final["data_estoque"] = pd.to_datetime(df_final["data_estoque"], errors="coerce") df_final = df_final.dropna(subset=["data_estoque"]) # Data máxima disponível data_max = df_final["data_estoque"].max() # Identifica mês atual e anterior mes_atual = data_max.to_period("M") mes_anterior = (data_max - pd.DateOffset(months=1)).to_period("M") # Último dia do mês anterior ult_dia_mes_ant = df_final[df_final["data_estoque"].dt.to_period("M") == mes_anterior]["data_estoque"].max() # Último dia disponível no mês atual ult_dia_mes_atual = data_max # Filtra apenas esses dois dias df_filtrado = df_final[df_final["data_estoque"].isin([ult_dia_mes_ant, ult_dia_mes_atual])] caminho_saida = os.path.join(pasta_saida, "ESTOQUE_UNIFICADO.parquet") df_filtrado.to_parquet(caminho_saida, index=False) #df_filtrado.to_csv(f'{pasta_saida}/estoque.csv', index=False) # Impressão final das datas filtradas print("✅ Arquivo Parquet salvo com sucesso!") print("📅 Datas incluídas no arquivo:") print(f" - Último dia do mês anterior: {ult_dia_mes_ant.strftime('%d/%m/%Y')}") print(f" - Último dia disponível do mês atual: {ult_dia_mes_atual.strftime('%d/%m/%Y')}") else: print("⚠️ Nenhum arquivo CSV foi encontrado para processar.")