>source

다음 코드는 여러 이미지를 하나의 pdf로 결합하는 것입니다. 각 폴더에 여러 이미지가있는 여러 폴더에서이 코드를 실행하려고합니다. 각 폴더에는 하나의 pdf가 있습니다.

 import os
from PIL import Image
from fpdf import FPDF
pdf = FPDF()
sdir = "imageFolder/"
w,h = 0,0
for i in range(1, 100):
    fname = sdir + "IMG%.3d.png" % i
    if os.path.exists(fname):
        if i == 1:
            cover = Image.open(fname)
            w,h = cover.size
            pdf = FPDF(unit = "pt", format = [w,h])
        image = fname
        pdf.add_page()
        pdf.image(image,0,0,w,h)
    else:
        print("File not found:", fname)
    print("processed %d" % i)
pdf.output("output.pdf", "F")
print("done")

첫 번째 루프 앞에 올 폴더 경로를 가져 오기 위해 다른 루프를 만들려고 생각했습니다.

  For j in range(1 to 70):
folderP=sdir+folder%1

그리고 각 폴더에서 반복

미안하지만 아직 파이썬을 배우고 있습니다. 어떤 제안이라도 좋을 것입니다!

  • 답변 # 1

    당신이 사용할 수있는 glob 모든 pdf의 경로를 가져 와서 목록에 추가하려면 목록을 반복하고 존재하는지 확인할 필요조차 없습니다.

    from glob import glob
    sDir = 'imageFolder/'
    pdfPaths = []
    pdfPaths.extend(glob(f'{sDir}**/*.pdf', recursive=True))
    for pdf in pdfPaths:
        # do stuff
    
    

관련 자료

  • 이전 java - Android Studio의 활동에서 다른 활동으로 위젯 추가
  • 다음 특정 문자 및 규칙에 대한 정규식