Python 通过Pypdf2提取和合并PDF
我有点困了。我正在尝试合并并提取工作目录中所有PDF文件的文本。然后,我想将数据存储在CSV表单中,以便对其运行其他分析。但是,我不断得到一个Python 通过Pypdf2提取和合并PDF,python,python-3.x,pypdf2,Python,Python 3.x,Pypdf2,我有点困了。我正在尝试合并并提取工作目录中所有PDF文件的文本。然后,我想将数据存储在CSV表单中,以便对其运行其他分析。但是,我不断得到一个PyPDF2.utils.PdfReadError:EOF标记未找到错误。我已经检查了资源,但我仍在努力 import PyPDF2 import os from PyPDF2 import PdfFileMerger, PdfFileReader merger = PdfFileMerger() for filename in os.listdir()
PyPDF2.utils.PdfReadError:EOF标记未找到
错误。我已经检查了资源,但我仍在努力
import PyPDF2
import os
from PyPDF2 import PdfFileMerger, PdfFileReader
merger = PdfFileMerger()
for filename in os.listdir():
with open(filename,"rb") as source:
tmp = PdfFileReader(source)
merger.append(tmp)
tmp.write('tmp.csv', 'wb')
tmp.close()
实际上,您的代码中有一些小错误,您在循环内部创建
tmp
变量,但在外部使用它写入csv
。而且,据我所知,您不需要使用open创建,然后创建用于合并的PdfileReader对象。尝试使用此简单方法合并多个pdf文件
:
import PyPDF2
import os
from PyPDF2 import PdfFileMerger, PdfFileReader
merger = PdfFileMerger()
for pdffile in os.listdir():
merger.append(pdffile)
merger.write('tmp.csv')
merger.close()
此错误何时发生?您确定文件夹中的所有PDF都有效吗?Adobe/Acrobat Reader可以全部读取吗?对不起,tmp=PdfileReader(源代码)行出现错误。所有的文件都是可读的,谢谢你的帮助。我现在收到一个错误,声明:PyPDF2.utils.PdfReadError:EOF marker not found很可能我的一个文件被截断了。有没有处理这个错误的好方法?@Meredith:听起来并不是所有的文件都是可读的。无论如何,Python中处理异常的标准方法是将带有潜在错误的行放在try
/except
中,并在except PyPDF2.utils.PdfReadError:
子句中处理问题(可以通过pass
忽略它)。@Meredith:很高兴我的评论有所帮助。您可能应该接受这个答案,因为它解决了主要问题。查看使用此代码后是否出现EOF错误
,这意味着部分pdf
可能已损坏,并且没有%EOF
字符。您可以尝试@MeredithJackson建议的try/except
方法来解决问题。您还可以首先尝试使用异常块中的文件名打印
语句找出哪个文件有此问题。一旦使用了try语句,它就跳过了,我又能正常工作了,谢谢!