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

How to return all extracted text from multiple PDFs in python?

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

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

打印文本将允许最后一个 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