Verschieben Sie zunächst das aktuelle Verzeichnis (CD) an den Speicherort der PY-Datei
zip2pdf.py
import os
os.chdir(os.path.dirname(os.path.abspath(__file__)))
Holen Sie sich alle Reißverschlüsse in CD Hier verwenden wir das Glob-Modul
zip2pdf.py
import glob
zips_ = glob.glob("./*.zip")
Rufen Sie den Dateinamen (ohne Erweiterung) für jede ZIP-Datei ab Erstellen Sie aus dem Dateinamen ein Dekomprimierungsverzeichnis unter cd
zip2pdf.py
for zip_path_ in zips_:
    filename_ = os.path.split(zip_path_)[1].split(".")[0]
    unzip_dir_ = os.path.join(".", filename_)
Nachdem Sie ein Dekomprimierungsverzeichnis haben, entpacken Sie die Zip-Datei Entpacken Sie die Zip-Datei mit dem Zipfile-Modul wie folgt
import zipfile
zip_ = zipfile.ZipFile(zip_path_)
zip_.extractall(unzip_dir_)
zip_.close()
Listen Sie nur die entpackten Zip-Dateien mit der Bilderweiterung (.png / .jpg / .jpeg) auf.
    image_list_ = []
    for item_ in os.listdir(unzip_dir_):
        image_path_ = os.path.join(unzip_dir_, item_)
        if os.path.isfile(image_path_):
            fileext = os.path.splitext(image_path_)[-1].lower()
            if fileext in [".jpg ", ".jpeg ", ".png "]:
                image_list_.append(image_path_)
            else:
                continue
        else:
            continue
Erstellen Sie ein PDF-Verzeichnis unter cd und konvertieren Sie es in pdf Der einfachste Weg, ein Verzeichnis zu erstellen, besteht darin, exist_ok = True mit der Option os.makedirs zu setzen.
import img2pdf
os.makedirs("./pdf", exist_ok=True)
pdf_path_ = os.path.join(".", "pdf", "{}.pdf".format(filename_))
layout = img2pdf.get_layout_fun(params_.pagesize_)
with open(pdf_path_, 'wb') as f:
    f.write(img2pdf.convert(image_list_, layout_fun=layout))
Löschen Sie das zur Dekomprimierung verwendete Verzeichnis Löschen Sie den Inhalt des Verzeichnisses mit rmtree des Shutil-Moduls
import shutil
shutil.rmtree(unzip_dir_)
zip2pdf.py
import os
import glob
import zipfile
import img2pdf
import shutil
#cd Wo sich diese Datei befindet
os.chdir(os.path.dirname(os.path.abspath(__file__)))
class params_:
    pagesize_ = (img2pdf.mm_to_pt(210), img2pdf.mm_to_pt(297))#A4size
def zip_to_pdf():
    #Holen Sie sich alle CD-Zip
    zips_ = glob.glob("./*.zip")
    for zip_path_ in zips_:
        print(os.path.split(zip_path_)[1])
        #Holen Sie sich nur den Namen der Postleitzahl
        filename_ = os.path.split(zip_path_)[1].split(".")[0]
        unzip_dir_ = os.path.join(".", filename_)
        #Erstellen Sie ein Verzeichnis mit demselben Namen wie zip in cd → dekomprimieren
        zip_ = zipfile.ZipFile(zip_path_)
        zip_.extractall(unzip_dir_)
        zip_.close()
        image_list_ = []
        #Listen Sie den Inhalt der entpackten Datei auf(Nur Bild)
        for item_ in os.listdir(unzip_dir_):
            image_path_ = os.path.join(unzip_dir_, item_)
            if os.path.isfile(image_path_):
                fileext = os.path.splitext(image_path_)[-1].lower()
                if fileext in [".jpg ", ".jpeg ", ".png "]:
                    image_list_.append(image_path_)
                else:
                    continue
            else:
                continue
        if len(image_list_) == 0:
            print("no image files")
            continue
        image_list_.sort()
        
        os.makedirs("./pdf", exist_ok=True)
        pdf_path_ = os.path.join(".", "pdf", "{}.pdf".format(filename_))
        layout = img2pdf.get_layout_fun(params_.pagesize_)
        with open(pdf_path_, 'wb') as f:
            f.write(img2pdf.convert(image_list_, layout_fun=layout))
        #Dekomprimierungszielverzeichnis gelöscht
        shutil.rmtree(unzip_dir_)
if __name__ == "__main__":
    zip_to_pdf()
Für den PDF-Konvertierungsteil habe ich auf Sammeln von Bilddateien in PDF mit Python verwiesen.
Recommended Posts