使用 python PyPDF2 合并 PDF 文件

Yas*_*lil 4 python pdf pypdf

我观看了一个视频,了解如何将 PDF 文件合并为一个 PDF 文件。我尝试在代码中进行一些修改,以便处理包含 PDF 文件的文件夹 主文件夹(Spyder)有,Demo.py这就是代码

import os
from PyPDF2 import PdfFileMerger

source_dir = os.getcwd() + './PDF Files'
merger = PdfFileMerger()

for item in os.listdir(source_dir):
    if item.endswith('pdf'):
        merger.append(item)

merger.write('.PDF Files/Output/Complete.pdf')       
merger.close()
Run Code Online (Sandbox Code Playgroud)

我有一个名PDF Files为主文件夹的子文件夹Spyder,在这个子文件夹中我放置了 PDF 文件,并在子文件夹中PDF Files创建了一个名为Output. item尽管在打印循环内部时,我得到了 PDF 名称,但我收到了关于 1.pdf 的错误文件未找到。

错误回溯

Traceback (most recent call last):
  File "demo.py", line 9, in <module>
    merger.append(item)
  File "C:\Users\Future\AppData\Local\Programs\Python\Python36\lib\site-packages\PyPDF2\merger.py", line 203, in append
    self.merge(len(self.pages), fileobj, bookmark, pages, import_bookmarks)
  File "C:\Users\Future\AppData\Local\Programs\Python\Python36\lib\site-packages\PyPDF2\merger.py", line 114, in merge
    fileobj = file(fileobj, 'rb')
FileNotFoundError: [Errno 2] No such file or directory: '1.pdf'
Run Code Online (Sandbox Code Playgroud)

Yas*_*lil 7

我可以这样解决

import os
from PyPDF2 import PdfFileMerger

source_dir = './PDF Files/'
merger = PdfFileMerger()

for item in os.listdir(source_dir):
    if item.endswith('pdf'):
        #print(item)
        merger.append(source_dir + item)

merger.write(source_dir + 'Output/Complete.pdf')       
merger.close()
Run Code Online (Sandbox Code Playgroud)