import pandas as pd import os # Defina os caminhos pasta_entrada = r"C:\Users\andressa.rocha\OneDrive - GRUPO GINSENG\2025\Indicadores_Melhoria\OTIF\RECEBIMENTO" pasta_saida = r"C:\Users\andressa.rocha\OneDrive - GRUPO GINSENG\2025\Indicadores_Melhoria\OTIF\Recebimento_Calamo" os.makedirs(pasta_saida, exist_ok=True) # Lista todos os arquivos .csv arquivos_csv = [] for raiz, dirs, arquivos in os.walk(pasta_entrada): for arquivo in arquivos: if arquivo.endswith(".csv"): arquivos_csv.append(os.path.join(raiz, arquivo)) # Mapeamento de colunas mapeamento_colunas = { "textbox25": "Fornecedor", "textbox27": "Documento", "textbox5": "Cod.Produto", "textbox7": "Descricao", "textbox4": "Preco_Unit", "textbox9": "Quantidade", "textbox3": "Preco_Total" } # Unificar arquivos df_list = [] for arquivo in arquivos_csv: try: df = pd.read_csv(arquivo, skiprows=2) # Ignorar as 2 primeiras linhas # Filtrar apenas as colunas necessárias que existem no arquivo colunas_para_pegar = [col for col in mapeamento_colunas.keys() if col in df.columns] df = df[colunas_para_pegar].rename(columns=mapeamento_colunas) df["Arquivo_Origem"] = os.path.basename(arquivo) df_list.append(df) except Exception as e: print(f"Erro ao ler o arquivo {arquivo}: {e}") # Concatenar e salvar em parquet if df_list: df_final = pd.concat(df_list, ignore_index=True) # ➡️ NOVA ETAPA: separar parte antes do primeiro '-' df_final["NumeroNF"] = df_final["Documento"].astype(str).str.split('-').str[0] df_final["NumeroNF"] = df_final["NumeroNF"].astype(str).str.split(': ').str[1] # ➡️ NOVA ETAPA DATA: separar parte antes do primeiro '-' df_final["Documento_Data"] = df_final["Documento"].astype(str).str.split('DATA: ').str[1] df_final["Documento_Data"] = df_final["Documento_Data"].astype(str).str.split(' ').str[0] df_final = df_final.drop(columns='Documento') caminho_saida = os.path.join(pasta_saida, "recebimento.parquet") df_final.to_parquet(caminho_saida, index=False) print("✅ Arquivo Parquet salvo com sucesso!") print(f"📂 Total de arquivos unificados: {len(arquivos_csv)}") # Mostrar as colunas do DataFrame final print("\n🖨️ Colunas do DataFrame final:") print(df_final.columns.tolist()) # Mostrar exemplo das 5 primeiras linhas print("\n🖨️ Exemplo do resultado final:") print(df_final.head()) else: print("⚠️ Nenhum arquivo CSV encontrado para processar.")