我有一个PDF,它由4页组成,我想把它分成单独的文档,并根据它们的页码对它们进行重命名。问题是我有一个循环来遍历每一个页面,基于:对于范围内的页面(0,pdfReader.numpages页)但每次它应该结束的时候,它都会继续运行并产生重复。我打印了一张照片(第页),看看发生了什么,得到了:
0 1 2 3 0 0 0
将量程切换到量程(1,pdfReader.numpages页)生成循环1、2、3并跳过第一页。循环(0,pdfReader.numpages页+1) 给出正确的文件输出,但给出的错误索引器错误:列表索引超出范围
import os, PyPDF2, re, tika, time
from tika import parser
def split_pdf_pages(root_directory, extract_to_folder):
for root, dirs, files in os.walk(root_directory):
for filename in files:
basename, extension = os.path.splitext(filename)
if extension == ".pdf":
fullpath = root + "\\" + basename + extension
pdfFileObj = open(fullpath, "rb")
pdfReader = PyPDF2.PdfFileReader(pdfFileObj)
for page in range(0, pdfReader.numPages):
print(page)
pdfWriter = PyPDF2.PdfFileWriter()
pageObj = pdfReader.getPage(page)
outputpdf = extract_to_folder + "\\" + basename + "-{}.pdf".format(page+1)
pdfWriter.addPage(pageObj)
with open(outputpdf, "wb") as f:
pdfWriter.write(f)
pdfFileObj.close()
我希望得到名为filename-1、filename-2.pdf等的文件,但是得到的却是filename-1、filename-1-1、filename-2、filename2-2等,除非它的范围是(1,pdfReader.numPages页)在那里它工作正常,但跳过第一页!我疯了,请帮我开车。在
我终于弄明白了(抱歉,我只是个程序员,所以一开始还不明显!)该程序循环遍历目录中的每一个PDF(其中包含提取和重命名的单页文档)。如果将范围更改为范围(1,pdfReader.numPages页)它忽略了所有这些新创建的文档,因为它们都只有1页长!当它设置为0时,它包括所有这些新创建的并复制它们。在
我所要做的就是将提取并重命名的文件夹移到另一个目录中。感觉很明显,现在我已经做到了!我还删除了pdfFileObj=open(fullpath,“rb”),因为reader显然是自动完成的,现在一切正常!在
相关问题 更多 >
编程相关推荐