如何从python中的文件夹一一读取pdf文件

时间:2018-10-28 09:34:12

标签: python pdf

我正在阅读pdf文件,并尝试通过NLP技术从其中提取关键字。现在,该程序一次只能接受一个pdf。我在D驱动器中有一个文件夹说“ pdf_docs”。该文件夹包含许多pdf文档。我的目标是从文件夹中逐个读取每个pdf文件。我如何在python中做到这一点。到目前为止,成功运行的代码如下所示。

import PyPDF2

file = open('abc.pdf','rb')


fileReader = PyPDF2.PdfFileReader(file)

count = 0

while count < 3:

    pageObj = fileReader.getPage(count)
    count +=1
    text = pageObj.extractText()

3 个答案:

答案 0 :(得分:1)

您可以使用glob以便使用模式匹配来获取目录中所有pdf文件的列表。

import glob

pdf_dir = "/foo/dir"

pdf_files = glob.glob("%s/*.pdf" % pdf_dir)
for file in pdf_files:
    do_your_stuff()

答案 1 :(得分:0)

首先读取该目录下所有可用的文件

from os import listdir
from os.path import isfile, join
onlyfiles = [f for f in listdir(mypath) if isfile(join(mypath, f))]

然后为该列表中的每个文件运行代码

import PyPDF2
from os import listdir
from os.path import isfile, join


onlyfiles = [f for f in listdir(mypath) if isfile(join(mypath, f))]
for file in onlyfiles:
    fileReader = PyPDF2.PdfFileReader(open(file,'rb'))

    count = 0

    while count < 3:

        pageObj = fileReader.getPage(count)
        count +=1
        text = pageObj.extractText()

os.listdir()将为您提供目录中的所有内容-文件和目录。因此请注意,路径中仅包含pdf文件,否则您将需要对列表进行简单过滤。

编辑1

您也可以使用glob模块,因为它可以进行模式匹配。

>>> import glob
>>> print(glob.glob('/home/rszamszur/*.sh'))
['/home/rszamszur/work-monitors.sh', '/home/rszamszur/default-monitor.sh', '/home/rszamszur/home-monitors.sh']

OS模块和glob之间的主要区别在于OS可以在所有系统上运行,而glob仅适用于Unix。

答案 2 :(得分:0)

import PyPDF2
import re
import glob

#your full path of directory
mypath = "dir"
for file in glob.glob(mypath + "/*.pdf"):
    print(file)
    if file.endswith('.pdf'):
        fileReader = PyPDF2.PdfFileReader(open(file, "rb"))
        count = 0
        count = fileReader.numPages
        while count >= 0:
            count -= 1
            pageObj = fileReader.getPage(count)
            text = pageObj.extractText()
            print(text)
        num = re.findall(r'[0-9]+', text)
        print(num)
    else:
        print("not in format")

让我们看一下代码: 在python中,我们无法正常处理Pdf文件。 所以我们需要安装PyPDF2软件包,然后导入该软件包。 “ glob”功能用于读取目录内的文件。 使用“ for”循环获取文件夹中的文件。 现在使用“ if”条件检查文件类型是否为pdf格式。 现在,我们正在使用“ PdfFileReader”功能读取文件夹中的pdf文件。 然后获取pdf文档中的页数。 通过使用while循环来获取所有页面并打印文件中的所有文本。