我是python的新手,我正在尝试从书本和互联网上学习。
我有大约250个带有jpg的子文件夹,我正在尝试为每个文件夹制作一个pdf文件。
文件夹就像这样
c:\img_sets\001
c:\img_sets\002
.
.
c:\img_sets\247
我想像这样的PDF
c:\img_sets\001.pdf
c:\img_sets\002.pdf
.
.
c:\img_sets\247.pdf
我从c:\ img_sets(windows 10和python 3.6)
运行脚本这是“代码”,只是在文件列表中添加了两个打印件,仅用于控制。
from fpdf import FPDF
import os
pdf = FPDF()
rootDir = '.'
for root, dirs, files in os.walk(rootDir):
for namedir in dirs:
imagelist = [name for name in os.listdir(namedir) if name.endswith(".jpg")]
for image in imagelist:
print(namedir + "\\" + image)
pdf.add_page()
pdf.image(namedir + "\\" + image,0,0,210,297)
print(namedir + ".pdf")
pdf.output(namedir + ".pdf", "F")
这创建了第一个,但第二个显示了这个错误:
Traceback (most recent call last):
File "c:\Python\Python36-32\jpg2pdf_v2.py", line 13, in <module>
pdf.output(namedir + ".pdf", "F")
File "C:\Python\Python36-32\lib\site-packages\fpdf\fpdf.py", line 1065, in output
self.close()
File "C:\Python\Python36-32\lib\site-packages\fpdf\fpdf.py", line 246, in close
self._enddoc()
File "C:\Python\Python36-32\lib\site-packages\fpdf\fpdf.py", line 1637, in _enddoc
self._putresources()
File "C:\Python\Python36-32\lib\site-packages\fpdf\fpdf.py", line 1585, in _putresources
self._putimages()
File "C:\Python\Python36-32\lib\site-packages\fpdf\fpdf.py", line 1515, in _putimages
del info['data']
KeyError: 'data'
所有帮助将不胜感激。
答案 0 :(得分:1)
发现错误。 pdf = FPDF()错误是外循环。
import fpdf
import os
rootDir = '.'
for root, dirs, files in os.walk(rootDir):
for dir in dirs:
print(os.path.join(root, dir))
imagelist = [name for name in os.listdir(os.path.join(root, dir)) if name.endswith(".jpg")]
print(imagelist)
pdf = fpdf.FPDF()
for image in imagelist:
pdf.add_page()
pdf.image(rootDir + dir + "\\" + image, 0, 0, 210, 297)
pdf.output(rootDir + dir + ".pdf", "F")