我有问题,需要您的帮助。 我通过“使用Python自动化无聊的东西”来学习Python。我目前在第13章,处理PDF文件和Word文档。 我从书中得到了这些代码,它基本上合并了没有第一页的pdf文件。但是运行该程序后,我没有看到弹出的任何PDF文件。我尝试在目录中找到它,但它都不存在。 因此,请帮助我找到该文件,谢谢! 这是代码
import PyPDF2
import os
pdfFiles = []
for filename in os.listdir('.'):
if filename.endswith('.pdf'):
pdfFiles.append(filename)
pdfFiles.sort(key=str.lower)
pdfWriter = PyPDF2.PdfFileWriter()
or filename in pdfFiles:
pdfFileObj = open(filename, 'rb')
pdfReader = PyPDF2.PdfFileReader(pdfFileObj)
for pageNum in range(1, pdfReader.numPages):
pageObj = pdfReader.getPage(pageNum)
pdfWriter.addPage(pageObj)
pdfOutput = open('allminutes.pdf', 'wb')
pdfWriter.write(pdfOutput)
pdfOutput.close()
答案 0 :(得分:0)
代码中缺少一些缩进,即错字。解决此问题后,我可以按预期合并两个PDF文件。
更新
由于您尚无法获取输出的PDF文件,因此,通过显示合并的PDF文件的页数来检查它是否真的创建。
我正在使用输入文件夹存储输入的PDF文件(input_files
)。
merge_pdfs.py
遍历input_files
中的所有PDF文件,并通过跳过每个PDF文件的第一页将它们合并到allminutes.pdf
中。
在运行代码之前,文件夹结构:
├── input_files
│ ├── module.pdf
│ └── pypi.pdf
├── merge_pdfs.py
├── requirements.txt
└── screenshots
└── demo_output.png
运行代码后,文件夹结构:
├── allminutes.pdf
├── input_files
│ ├── module.pdf
│ └── pypi.pdf
├── merge_pdfs.py
├── requirements.txt
└── screenshots
└── demo_output.png
merge_pdfs.py
:
import PyPDF2
import os
pdfFiles = []
outputFile = 'allminutes.pdf'
inputFileDirectory = 'input_files'
for filename in os.listdir(inputFileDirectory):
if filename.endswith('.pdf'):
pdfFiles.append(inputFileDirectory+os.sep+filename)
pdfFiles.sort(key=str.lower)
pdfWriter = PyPDF2.PdfFileWriter()
for filename in pdfFiles:
pdfFileObj = open(filename, 'rb')
pdfReader = PyPDF2.PdfFileReader(pdfFileObj)
for pageNum in range(1, pdfReader.numPages):
pageObj = pdfReader.getPage(pageNum)
pdfWriter.addPage(pageObj)
pdfOutput = open(outputFile, 'wb')
pdfWriter.write(pdfOutput)
pdfOutput.close()
print("Done merging the pdf files to {}".format(outputFile))
pdfFile = PyPDF2.PdfFileReader(open(outputFile, "rb"))
# print how many pages outputFile has:
print("{} has {} pages.".format(outputFile, pdfFile.getNumPages()))
生成的allminutes.pdf
文件:
merge_pdfs.py
的输出:
Done merging the pdf files to allminutes.pdf
allminutes.pdf has 4 pages.