从pdf中提取文本的换行符

时间:2014-02-07 08:14:49

标签: python string pypdf

我正在编写一个关于在pdf中提取文本的函数,我也在使用pyPdf库。 提取没问题。但我遇到了一些问题,比如排除换行符。

所以我找到了添加换行符的方法,所以我这样做了:

# Iterate pages
for i in range(0, pdf.getNumPages()):
    # Extract text from page and add to content
    content += pdf.getPage(i).extractText()
    content = content.replace('. ', '. <br />')
    pages += content

# Collapse whitespace
content = " ".join(pages.replace(u"\xa0", " ").strip().split())

问题甚至是这样的例子:

1. Apple

变成这样:

1.

Apple

不应该这样。我只想在句子的每一端添加换行符。

有没有办法检查或确定句子何时结束? 或者检查它是否为编号?

3 个答案:

答案 0 :(得分:2)

一个hackish解决方案是仅在完全停止不是紧跟数字之前执行替换。将行content = content.replace('. ', '. <br />')更改为以下内容:

import re

re.sub(r'([^0-9])\. ', r"\1. <br />", content)

答案 1 :(得分:0)

为什么不使用re.sub()?

对于点状线并且可能带有一些空格,模式应为“。\ s * $”,即

import re
:

content = re.sub('\.\s*$', '. <br />', content)

答案 2 :(得分:0)

pyPdf非常适合某些事情,但不是很擅长文本提取。看看pdfminer库。或者使用像pdftotext这样的工具。