组合PDF文件在哪里?

问题描述 投票:1回答:1

我有问题,需要你的帮助。我通过“使用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()
python pypdf2
1个回答
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文件:

allminutes.pdf

merge_pdfs.py的输出:

Done merging the pdf files to allminutes.pdf
allminutes.pdf has 4 pages.
© www.soinside.com 2019 - 2024. All rights reserved.