Python 3.x 转换多个PDF';使用PDFminer3将s转换为文本文件
希望这是一个非常简单的问题,但是我对在一个小项目中使用Python3是一个全新的认识,希望得到一些指导。我有一个包含1000多个pdf文档的文件夹,其中包含一些我想提取的数据。我可以成功地将PDF转换为文本文件,并将其保存在脚本目录中,但是我不知道如何一次对所有PDF运行此操作,并在新文件夹中为每个PDF创建输出文件。到目前为止,我的代码如下Python 3.x 转换多个PDF';使用PDFminer3将s转换为文本文件,python-3.x,pdfminer,Python 3.x,Pdfminer,希望这是一个非常简单的问题,但是我对在一个小项目中使用Python3是一个全新的认识,希望得到一些指导。我有一个包含1000多个pdf文档的文件夹,其中包含一些我想提取的数据。我可以成功地将PDF转换为文本文件,并将其保存在脚本目录中,但是我不知道如何一次对所有PDF运行此操作,并在新文件夹中为每个PDF创建输出文件。到目前为止,我的代码如下 from pdfminer3.layout import LAParams, LTTextBox from pdfminer3.pdfpage impor
from pdfminer3.layout import LAParams, LTTextBox
from pdfminer3.pdfpage import PDFPage
from pdfminer3.pdfinterp import PDFResourceManager
from pdfminer3.pdfinterp import PDFPageInterpreter
from pdfminer3.converter import PDFPageAggregator
from pdfminer3.converter import TextConverter
import io
resource_manager = PDFResourceManager()
fake_file_handle = io.StringIO()
converter = TextConverter(resource_manager, fake_file_handle)
page_interpreter = PDFPageInterpreter(resource_manager, converter)
with open('/sample/mypdf.pdf', 'rb') as fh:
for page in PDFPage.get_pages(fh,
caching=True,
check_extractable=True):
page_interpreter.process_page(page)
text = fake_file_handle.getvalue()
# close open handles
converter.close()
fake_file_handle.close()
print(text, file=open("Output.txt","a"))
我将感谢任何帮助或方向,因为我可以前进。谢谢大家! 我可以想到两种方法。如果您希望为几个文件执行此操作。您可以将所有文件路径追加到列表中,如下所示。并对其进行迭代。相同的函数,但只是从列表中迭代它。比如说,
list = ["C:\\Users\\blabla\\Desktop\\.pdf\\test.pdf"
,"C:\\Users\\blabla\\Desktop\\.pdf\\testmore.pdf"
,"C:\\Users\\blabla\\Desktop\\.pdf\\writingtoxml.pdf"
,"C:\\Users\\blabla\Desktop\\.pdf\\2Data.pdf"]
for pathname in list:
#your code goes here
或者,您可以从给定的目录进行迭代。将所有文档放在一个文件夹中,按如下所示指定目录并遍历。如果希望每个文件都有不同的输出名称,请重命名它们
import os
directory = "C:\\Users\\blabla\\Desktop\\.pdf"
for filename in os.listdir(directory):
if filename.endswith(".pdf"):
pathname = os.path.join(directory, filename)
#Your code goes here
continue
else:
continue
您必须在代码中更改的唯一部分是替换此部分:
with open('/sample/mypdf.pdf', 'rb') as fh:
为此:
with open(pathname, 'rb') as fh:
因为pathname
本身会按如下方式打印出所需的路径:
C:\Users\blabla\Desktop\.pdf\test.pdf
C:\Users\blabla\Desktop\.pdf\testmore.pdf
C:\Users\blabla\Desktop\.pdf\writingtoxml.pdf
C:\Users\blabla\Desktop\.pdf\2Data.pdf
还可以使用os.mkdir创建新文件夹