Ceci est un exemple de code pour créer un fichier dox avec la vignette du fichier JPEG inclus dans le sous-dossier du dossier en utilisant la bibliothèque python-docx et le logiciel gratuit "Reduction only". En Python 3.8.
Je vais le décrire comme une référence pour python-docx, sous-processus, etc. pour moi-même un jour.
import docx
import subprocess
from pathlib import Path
rootpath = Path(r"<Le chemin du dossier qui rassemble les dossiers photo>")
shukusenpath = Path(r"<Pour réduction seulement. Chemin>")
thumbdirname = "thumb"  #Pour réduction seulement. Le nom du sous-dossier spécifié dans
for folderpath in rootpath.glob("*"):
    if not folderpath.is_dir():
        continue
    newfilepath = rootpath / (folderpath.stem + ".docx")
    if newfilepath.is_file():
        continue
    thumbpath = folderpath / thumbdirname
    #Coller uniquement JPEG
    #Modifiez ici si vous souhaitez également coller d'autres extensions.
    picpaths = list(folderpath.glob("*.jpg "))
    if len(picpaths) == 0:
        continue
    subprocess.run([shukusenpath, *picpaths])
    doc = docx.Document()
    for picpath in picpaths:
        thumbpicpath = thumbpath / picpath.name
        try:
            doc.add_picture(str(thumbpicpath))
            doc.add_paragraph()
            doc.add_page_break()
        except Exception:
            pass
    doc.save(newfilepath)
-- python-docx peut être installé avec pip install python-docx.
--pathlib.Path peut combiner des chemins avec l'opérateur / ʻopérateur.  --subprocess` démarre le fichier exécutable et attend la fin en donnant le fichier exécutable et une liste d'arguments comme premier argument.
[literal, * list, * generator]. * Est l'expansion des listes et des générateurs.pathlib.Path directement à doxx.Document.add_picture, une erreur se produira. Ceci peut être évité en le convertissant en une chaîne avec str (pathlib.Path).
--Dans pathlib.Path, stem ne nécessite pas de parenthèses, mais dans un usage normal, ʻis_dir () nécessite des parenthèses. ʻIs_dir n'entraîne pas d'erreur, mais il renvoie la méthode elle-même, donc le donner à ʻif` est toujours vrai.Recommended Posts