[英]newline in text extraction from pdf
我正在編寫一個關於在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
它不應該是。 我只想在句子的每一端添加換行符。
有沒有辦法檢查或確定句子何時結束? 或者檢查它是否為編號?
一個hackish解決方案是僅在完全停止不是緊跟數字之前執行替換。 將行content = content.replace('. ', '. <br />')
更改為以下內容:
import re
re.sub(r'([^0-9])\. ', r"\1. <br />", content)
為什么不使用re.sub()?
對於點結束線並且可能帶有一些空格,模式應為“。\\ s * $”,即
import re
:
content = re.sub('\.\s*$', '. <br />', content)
pyPdf非常適合某些事情,但不是很擅長文本提取。 看看pdfminer庫。 或者使用像pdftotext這樣的工具。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.