微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从python中的pdf文本中提取第一行

如何解决从python中的pdf文本中提取第一行

我正在用 "\n" 分割从 pdf 中提取的文本,但是分割后字符串的位置有问题。对某些人来说,它使用 [0],而对某些人来说,它是 [2]。我想把它放在一个循环中并从页面提取第一行而不考虑位置

这是我的代码

for fil in new_pdf_files:
    object = PyPDF2.PdfFileReader(fil)
    pdfFileObj = open(fil,'rb')
    pdfReader = PyPDF2.PdfFileReader(pdfFileObj)
    pageObj = pdfReader.getPage(1)
    s= (pageObj.extractText())
    name =s.split("\n")[0]  
    print(name)

pdf 文本提取

一个 pdf 文本提取 " \n \nPIERRE AVENIR 2\n \nSociété Civile de Placement Immobilier au capital de 99\n \n\n \nSiège social\n \n: 167,quai de la "

\n 出现在其他一些名称之前

第二个 pdf 文本提取

“ADVINI\n \n \nSociété anonyme à directoire et \nConseil de Monitoring\n \na\nu capital”

名字前没有\n

需要提取PIERRE AVENIR 2ADVINI

解决方法

首先使用strip去除前导和尾随空格:

name =s.strip().split("\n")[0]
,
for fil in new_pdf_files:
    object = PyPDF2.PdfFileReader(fil)
    pdfFileObj = open(fil,'rb')
    pdfReader = PyPDF2.PdfFileReader(pdfFileObj)
    pageObj = pdfReader.getPage(1)
    s= (pageObj.extractText())
    name =s.split("\n")
    for i in name:
        if i not in [""," ",","]:
            print(i)
            break

我相信像上面那样循环遍历数组名称可能会解决您的问题。

,

在使用 split 获取第一行之前,您可以简单地使用正则表达式删除任何要忽略的前导字符:

    import re
    
    for fil in new_pdf_files:
        object = PyPDF2.PdfFileReader(fil)
        pdfFileObj = open(fil,'rb')
        pdfReader = PyPDF2.PdfFileReader(pdfFileObj)
        pageObj = pdfReader.getPage(1)
        s= (pageObj.extractText())
        name = re.sub("^[,\n]+","",s).split("\n")[0]  
        print(name)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。