合并的PDF文件在哪里?

时间:2019-04-08 04:17:44

标签: python pypdf2

我有问题,需要您的帮助。 我通过“使用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()

1 个答案:

答案 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文件:

allminutes.pdf

merge_pdfs.py的输出:

Done merging the pdf files to allminutes.pdf
allminutes.pdf has 4 pages.