【问题标题】:FileNotFound error / reading PDF Files with PyPDF2 and os.listdir()FileNotFound 错误/使用 PyPDF2 和 os.listdir() 读取 PDF 文件
【发布时间】:2020-09-22 07:42:14
【问题描述】:

我有以下脚本可以将几个 PDF 合并在一起:

import PyPDF2
import sys
import os

inputs = sys.argv[1]
list = os.listdir(inputs)

merger = PyPDF2.PdfFileMerger()

for pdf in list:
     merger.append(pdf)

merger.write('merged.pdf')
print('All done')

包含文件的文件夹与运行脚本位于不同的目录中,因此我插入了完整路径。

从终端python3 pdf-merger.py /Users/user/Documents/pdf_list 这样运行时,我收到以下错误:

Traceback (most recent call last):
  File "pdf-merger.py", line 11, in <module>
    merger.append(pdf)
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/PyPDF2/merger.py", line 203, in append
    self.merge(len(self.pages), fileobj, bookmark, pages, import_bookmarks)
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/PyPDF2/merger.py", line 114, in merge
    fileobj = file(fileobj, 'rb')
FileNotFoundError: [Errno 2] No such file or directory: 'card.pdf'

我也尝试了另一种方法:

import PyPDF2
import sys
import os

inputs = sys.argv[1]
list = [os.path.join(inputs,a) for a in os.listdir(inputs)]

merger = PyPDF2.PdfFileMerger()

for pdf in list:
     merger.append(pdf)

merger.write('merged.pdf')
print('All done')

这次我得到一个PyPDF2.utils.PdfReadError: Could not read malformed PDF file,不管它是什么文件。

有什么想法吗?

【问题讨论】:

    标签: python pypdf2


    【解决方案1】:

    发现问题。目录中有一个隐藏的.DS_Store 文件损坏了脚本。

    if pdf.endswith('.pdf') 忽略它解决了这个问题!

    【讨论】:

      猜你喜欢
      • 2020-12-16
      • 2020-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多