Ruptura_Projetada/CODIGO PY/UNIFICAR_TRATAR_RECEBIMENTOCALAMO.py
2025-10-24 15:54:54 -03:00

74 lines
2.5 KiB
Python

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.")