使用PDFminer3将多个PDF转换为文本文件

时间:2019-11-27 22:45:45

标签: python-3.x pdfminer

希望这是一个非常简单的方法,但是对于使用python 3进行小型项目我是全新的,并且需要一些指导。我有一个超过1000个pdf文档的文件夹,其中包含一些我想提取的数据。我可以成功地将PDF转换为文本文件并将其保存在scripts目录中,但是我不知道如何一次对所有PDF运行此文件,并在新文件夹中为每个PDF创建输出文件。我到目前为止的代码如下。

'ID1','ID2','ID3'
'RELID1','RELID2','RELID3'

在我前进的过程中,我将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:0)

我可以想到两种方法。如果您希望为几个文件这样做。您可以按以下方式将所有文件路径附加到列表中。并遍历它。功能相同,只是从列表中进行迭代。例如,

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