python怎么读取pdf为文本_python怎么读取pdf文本内容
python讀取pdf文本內容的方法:首先打開相應的python腳本文件;然后使用PDFMiner工具來讀取pdf文本內容;最后通過print輸出讀取后的內容即可。
python讀取pdf文本內容
python處理pdf也是常用的技術了,對于python3來說,pdfminer3k是一個非常好的工具。
PDFMiner是一個可以從PDF文檔中提取信息的工具。與其他PDF相關的工具不同,它注重的完全是獲取和分析文本數據。
PDFMiner允許你獲取某一頁中文本的準確位置和一些諸如字體、行數的信息。它包括一個PDF轉換器,可以把PDF文件轉換成HTML等格式。它還有一個擴展的PDF解析器,可以用于除文本分析以外的其他用途。pip install pdfminer3k
首先,為了滿足大部分人的需求,我先給一個通用一點的腳本來讀取pdf中的文本:from io import StringIO
from io import open
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfinterp import PDFResourceManager, process_pdf
def read_pdf(pdf):
# resource manager
rsrcmgr = PDFResourceManager()
retstr = StringIO()
laparams = LAParams()
# device
device = TextConverter(rsrcmgr, retstr, laparams=laparams)
process_pdf(rsrcmgr, device, pdf)
device.close()
content = retstr.getvalue()
retstr.close()
# 獲取所有行
lines = str(content).split("\n")
return lines
if __name__ == '__main__':
with open('t1.pdf', "rb") as my_pdf:
print(read_pdf(my_pdf))
我主要是想在pdf中抽出自己想要的一些關鍵信息,所以需要找到這些信息的共同點。幸運的是,這些關鍵信息的行都含有'//',所以我只需找到含有'//'的行就行了,于是寫了以下腳本。
這樣就可以直接使用了,我們先看腳本:from io import StringIO
from io import open
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfinterp import PDFResourceManager, process_pdf
def read_pdf(pdf):
# resource manager
rsrcmgr = PDFResourceManager()
retstr = StringIO()
laparams = LAParams()
# device
device = TextConverter(rsrcmgr, retstr, laparams=laparams)
process_pdf(rsrcmgr, device, pdf)
device.close()
content = retstr.getvalue()
retstr.close()
# 獲取所有行
lines = str(content).split("\n")
units = [1, 2, 3, 5, 7, 8, 9, 11, 12, 13]
header = '\x0cUNIT '
# print(lines[0:100])
count = 0
flag = False
text = open('words.txt', 'w+')
for line in lines:
if line.startswith(header):
flag = False
count += 1
if count in units:
flag = True
print(line)
text.writelines(line + '\n')
if '//' in line and flag:
text_line = line.split('//')[0].split('. ')[-1]
print(text_line)
text.writelines(text_line+'\n')
text.close()
def _main():
my_pdf = open('t1.pdf', "rb")
read_pdf(my_pdf)
my_pdf.close()
if __name__ == '__main__':
_main()
其實看到lines = str(content).split("\n")那一行就夠了,我們可以把lines都print出來,就可以看到pdf里面的內容。
這樣我們就可以把pdf文件處理看作簡單的字符串數據處理了。接下來的腳本操作也不用過多解釋了。
更多相關知識,請訪問 PHP中文網!!
本文原創發布php中文網,轉載請注明出處,感謝您的尊重!
總結
以上是生活随笔為你收集整理的python怎么读取pdf为文本_python怎么读取pdf文本内容的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java判断对象无数据_java 对象属
- 下一篇: python读取文件夹下特定的文件_py