木星笔记本中的细胞



我试图在Jupyter笔记本中使用PyPDF2解析pdf。下面是我想如何编写代码的不同部分,也就是说,提取文本语句在一个单元格和RegEx在一个新的单元格。然而,如果我像下面这样分开这两段代码,RegEx只运行文件的最后一页,而不是整个文件(12页)。为什么会发生这种情况?我真的很想使用不同的单元格。

import PyPDF2
import re
file = open(r'file.pdf', 'rb')
doc = PyPDF2.PdfFileReader(file)
#print(doc.getNumPages()) 

#新细胞

for i in range(0, 12):
page = doc.getPage(i)
text = page.extractText()
#print(text)

#新细胞

doc_re = re.compile(r'Sd+_d+', re.IGNORECASE)
result = doc_re.findall(text)
print(result)

每次运行for循环时,都要使用text = page.extractText()

重置文本的值RegEx运行在什么你给它,这是text。即使循环运行超过12页,代码的第二个单元格也会接收text的最终值(这是您在循环的最后一次迭代中为其指定的值)。

您可以将代码从for循环中的第二个单元格中移开,或者更好的选择是将每个页面的文本添加到文本中。

所以,把text =变成text +=应该能解决你的问题。

相关内容

  • 没有找到相关文章

最新更新