From 42943dc415b978756ad3a1cbcd459931dfd72137 Mon Sep 17 00:00:00 2001 From: tristan Date: Thu, 26 Mar 2026 15:03:42 +0100 Subject: [PATCH] fix : prise en compte des sous dossier --- replace_docx.py | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/replace_docx.py b/replace_docx.py index 5e965df..9bfe9c5 100644 --- a/replace_docx.py +++ b/replace_docx.py @@ -176,26 +176,31 @@ def main(): # Le dossier de travail est celui qui contient le fichier YAML dossier_travail = config_dir - # Copier les .docx du template dans le dossier de travail + # Copier les .docx du template dans le dossier de travail (y compris sous-dossiers) docx_copies = 0 - for f in os.listdir(dossier_source): - if f.endswith(".docx") and not f.startswith("~$"): - src = os.path.join(dossier_source, f) - dst = os.path.join(dossier_travail, f) - if not os.path.exists(dst): - shutil.copy2(src, dst) - docx_copies += 1 + for root, dirs, files in os.walk(dossier_source): + for f in files: + if f.endswith(".docx") and not f.startswith("~$"): + src = os.path.join(root, f) + # Reproduire la structure de sous-dossiers + rel = os.path.relpath(src, dossier_source) + dst = os.path.join(dossier_travail, rel) + os.makedirs(os.path.dirname(dst), exist_ok=True) + if not os.path.exists(dst): + shutil.copy2(src, dst) + docx_copies += 1 if docx_copies > 0: print(f"{docx_copies} fichier(s) .docx copie(s) depuis {dossier_source}") else: print(f"Fichiers .docx deja presents dans {dossier_travail}") - # Trouver tous les .docx du dossier de travail + # Trouver tous les .docx du dossier de travail (y compris sous-dossiers) docx_files = [] - for f in os.listdir(dossier_travail): - if f.endswith(".docx") and not f.startswith("~$"): - docx_files.append(os.path.join(dossier_travail, f)) + for root, dirs, files in os.walk(dossier_travail): + for f in files: + if f.endswith(".docx") and not f.startswith("~$"): + docx_files.append(os.path.join(root, f)) if not docx_files: print("Aucun fichier .docx trouve.")