为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

哔哔one 2023-03-16 09:50:25
这是我的代码。到目前为止,它会将 pdf 的所有内容打印到 pages 变量。但是,我似乎无法返回相同的提取文本。我一直在通过从随机 pdf 中提取信息并将其放在我正在调用的文件夹中来测试它。如何让它以与打印文本相同的方式返回提取的文本?import osimport PyPDF2 as pdfimport pandas as pddef 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
查看完整描述

1 回答

?
慕尼黑5688855

TA贡献1848条经验 获得超2个赞

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


查看完整回答
反对 回复 2023-03-16
  • 1 回答
  • 0 关注
  • 104 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号