如何在 python 中返回从多个 PDF 中提取的所有文本?

这是我的代码。到目前为止,它会将 pdf 的所有内容打印到 pages 变量。但是,我似乎无法返回相同的提取文本。我一直在通过从随机 pdf 中提取信息并将其放在我正在调用的文件夹中来测试它。如何让它以与打印文本相同的方式返回提取的文本?


import os

import PyPDF2 as pdf

import pandas as pd


def scan_files(root):

    for path, subdirs, files in os.walk(root):

        for name in files:

            if name.endswith('.pdf'):

                #print(name)

                pdf = PyPDF2.PdfFileReader(os.path.join(path,name))

                numPages = pdf.getNumPages()

                for p in range(0, numPages):

                        pages = ''

                        page = pdf.getPage(p)

                        pages += page.extractText()

                        pages = pages.replace('\n', '')

                        #print(pages)

                        return pages


哔哔one
浏览 105回答 1
1回答

慕尼黑5688855

打印文本将允许最后一个 for 循环迭代(使用您提到的“打印(页面)”)。然而,返回页面将终止正在运行的循环,并吐出它到目前为止覆盖的文本。尝试使用类似的东西:def scan_files(root):    pdftext = ''    for path, subdirs, files in os.walk(root):        for name in files:            if name.endswith('.pdf'):                #print(name)                pdf = PyPDF2.PdfFileReader(os.path.join(path,name))                numPages = pdf.getNumPages()                                pages = ''                                    for p in range(0, numPages):                    page = pdf.getPage(p)                    pages += page.extractText()                    pages = pages.replace('\n', '')                pdftext += pages    return pdftext
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python