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

在python中从pdf文本中提取第一行,python,pdf,text,Python,Pdf,Text,我正在用“\n”拆分从pdf中提取的文本,但拆分后字符串的位置有问题。对于某些情况,它与[0]一起工作,而对于某些情况,它与[2]一起工作。我想把它放在一个循环中,从页面中提取第一行,而不管位置如何 这是我的密码: for fil in new_pdf_files: object = PyPDF2.PdfFileReader(fil) pdfFileObj = open(fil, 'rb') pdfReader = PyPDF2.PdfFileReader(pdfFile

我正在用“\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\n99年资本金不动产安置公民协会\n\n\n\nSiège social\n\n:167,quai de la”

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

第二次pdf文本摘录

“ADVINI\n\n\nSociétéanonomeádirectoire et\n seil de surveillance\n\na\nu capital”

名称前不存在\n


需要提取的PIERRE AVENIR 2ADVINI

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

name =s.strip().split("\n")[0]
对于新pdf文件中的fil:
对象=PyPDF2.PdfileReader(fil)
PdfileObj=打开(fil,‘rb’)
pdfReader=PyPDF2.PdfileReader(PdfileObj)
pageObj=pdfReader.getPage(1)
s=(pageObj.extractText())
name=s.split(“\n”)
以我的名义:
如果我不在[“”,“”,“,”]:
印刷品(一)
打破

我相信,如上所述循环数组名称可能会解决您的问题。

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

    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)