74 lines
2.5 KiB
Python
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.")
|