31 lines
902 B
Python
31 lines
902 B
Python
import logging
|
|
from pathlib import Path
|
|
|
|
import pandas as pd
|
|
|
|
|
|
def extract_excel_to_dfs(directory, df_names=["charge", "locataire"]):
|
|
p = Path(directory)
|
|
dfs = {name: [] for name in df_names}
|
|
|
|
for file in p.glob("*.xlsx"):
|
|
year, month, immeuble, table = file.stem.split("_")
|
|
df = pd.read_excel(file, dtype={"lot": str}).assign(
|
|
annee=year, mois=month, immeuble=immeuble[:3]
|
|
)
|
|
dfs[table].append(df)
|
|
|
|
return dfs
|
|
|
|
|
|
def join_excel(directory, dest, df_names=["charge", "locataire"]):
|
|
dfs = extract_excel_to_dfs(directory, df_names)
|
|
destinations = {}
|
|
for tablename, datas in dfs.items():
|
|
df = pd.concat(datas)
|
|
destination = Path(dest) / f"{tablename}.xlsx"
|
|
df.to_excel(destination, index=False)
|
|
destinations[tablename] = destination
|
|
logging.info(f"{destination} written")
|
|
return destinations
|