激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

腳本之家,腳本語言編程技術(shù)及教程分享平臺(tái)!
分類導(dǎo)航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務(wù)器之家 - 腳本之家 - Python - Python解析并讀取PDF文件內(nèi)容的方法

Python解析并讀取PDF文件內(nèi)容的方法

2021-02-19 00:17開心果汁 Python

這篇文章主要介紹了Python解析并讀取PDF文件內(nèi)容的方法,結(jié)合實(shí)例形式分別描述了Python2.7在win32與win64環(huán)境下實(shí)現(xiàn)讀取pdf的相關(guān)操作技巧,需要的朋友可以參考下

本文實(shí)例講述了Python解析并讀取PDF文件內(nèi)容的方法。分享給大家供大家參考,具體如下:

一、問題描述

利用python,去讀取pdf文本內(nèi)容。

Python解析并讀取PDF文件內(nèi)容的方法

二、效果

Python解析并讀取PDF文件內(nèi)容的方法

三、運(yùn)行環(huán)境

python2.7

四、需要安裝的庫

?
1
pip install pdfminer

五、實(shí)現(xiàn)源代碼

代碼1(win64)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# coding=utf-8
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
import time
time1=time.time()
import os.path
from pdfminer.pdfparser import PDFParser,PDFDocument
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import PDFPageAggregator
from pdfminer.layout import LTTextBoxHorizontal,LAParams
from pdfminer.pdfinterp import PDFTextExtractionNotAllowed
result=[]
class CPdf2TxtManager():
  def __init__(self):
    '''''
    Constructor
    '''
  def changePdfToText(self, filePath):
    file = open(path, 'rb') # 以二進(jìn)制讀模式打開
    #用文件對(duì)象來創(chuàng)建一個(gè)pdf文檔分析器
    praser = PDFParser(file)
    # 創(chuàng)建一個(gè)PDF文檔
    doc = PDFDocument()
    # 連接分析器 與文檔對(duì)象
    praser.set_document(doc)
    doc.set_parser(praser)
    # 提供初始化密碼
    # 如果沒有密碼 就創(chuàng)建一個(gè)空的字符串
    doc.initialize()
    # 檢測(cè)文檔是否提供txt轉(zhuǎn)換,不提供就忽略
    if not doc.is_extractable:
      raise PDFTextExtractionNotAllowed
    # 創(chuàng)建PDf 資源管理器 來管理共享資源
    rsrcmgr = PDFResourceManager()
    # 創(chuàng)建一個(gè)PDF設(shè)備對(duì)象
    laparams = LAParams()
    device = PDFPageAggregator(rsrcmgr, laparams=laparams)
    # 創(chuàng)建一個(gè)PDF解釋器對(duì)象
    interpreter = PDFPageInterpreter(rsrcmgr, device)
    pdfStr = ''
    # 循環(huán)遍歷列表,每次處理一個(gè)page的內(nèi)容
    for page in doc.get_pages(): # doc.get_pages() 獲取page列表
      interpreter.process_page(page)
      # 接受該頁面的LTPage對(duì)象
      layout = device.get_result()
      for x in layout:
        if hasattr(x, "get_text"):
          # print x.get_text()
          result.append(x.get_text())
          fileNames = os.path.splitext(filePath)
          with open(fileNames[0] + '.txt','wb') as f:
            results = x.get_text()
            print(results)
            f.write(results + '\n')
if __name__ == '__main__':
  '''''
   解析pdf 文本,保存到txt文件中
  '''
  path = u'C:/data3.pdf'
  pdf2TxtManager = CPdf2TxtManager()
  pdf2TxtManager.changePdfToText(path)
  # print result[0]
  time2 = time.time()
  print u'ok,解析pdf結(jié)束!'
  print u'總共耗時(shí):' + str(time2 - time1) + 's'

代碼2(win32)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# coding=utf-8
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
import time
time1=time.time()
import os.path
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import PDFPageAggregator
from pdfminer.layout import LAParams
from pdfminer.pdfpage import PDFTextExtractionNotAllowed
from pdfminer.pdfparser import PDFParser
from pdfminer.pdfdocument import PDFDocument
from pdfminer.pdfpage import PDFPage
result=[]
class CPdf2TxtManager():
  def __init__(self):
    '''''
    Constructor
    '''
  def changePdfToText(self, filePath):
    file = open(path, 'rb') # 以二進(jìn)制讀模式打開
    #用文件對(duì)象來創(chuàng)建一個(gè)pdf文檔分析器
    praser = PDFParser(file)
    # 創(chuàng)建一個(gè)PDF文檔
    doc = PDFDocument(praser)
    # 檢測(cè)文檔是否提供txt轉(zhuǎn)換,不提供就忽略
    if not doc.is_extractable:
      raise PDFTextExtractionNotAllowed
    # 創(chuàng)建PDf 資源管理器 來管理共享資源
    rsrcmgr = PDFResourceManager()
    # 創(chuàng)建一個(gè)PDF設(shè)備對(duì)象
    laparams = LAParams()
    device = PDFPageAggregator(rsrcmgr, laparams=laparams)
    # 創(chuàng)建一個(gè)PDF解釋器對(duì)象
    interpreter = PDFPageInterpreter(rsrcmgr, device)
    pdfStr = ''
    # 循環(huán)遍歷列表,每次處理一個(gè)page的內(nèi)容
    for page in PDFPage.create_pages(doc): # doc.get_pages() 獲取page列表
      interpreter.process_page(page)
      # 接受該頁面的LTPage對(duì)象
      layout = device.get_result()
      for x in layout:
        if hasattr(x, "get_text"):
          # print x.get_text()
          result.append(x.get_text())
          fileNames = os.path.splitext(filePath)
          with open(fileNames[0] + '.txt','wb') as f:
            results = x.get_text()
            print(results)
            f.write(results + '\n')
if __name__ == '__main__':
  '''''
   解析pdf 文本,保存到txt文件中
  '''
  path = u'C:/36.pdf'
  pdf2TxtManager = CPdf2TxtManager()
  pdf2TxtManager.changePdfToText(path)
  # print result[0]
  time2 = time.time()
  print u'ok,解析pdf結(jié)束!'
  print u'總共耗時(shí):' + str(time2 - time1) + 's'

希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。

原文鏈接:https://blog.csdn.net/u013421629/article/details/72764737

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 中文字幕在线观看免费视频 | 成人国产精品一区 | 精品人伦一区二区三区蜜桃网站 | 伊人在线视频 | 国产噜噜噜噜噜久久久久久久久 | 在线a亚洲视频播放在线观看 | 欧美视频网 | 国产在线观看一区二区三区 | 请播放一级毛片 | 成人毛片视频免费 | 日本网站在线播放 | 国产精品久久久久一区二区 | 久久91亚洲人成电影网站 | 欧美.com| 久久不射电影网 | 国产一级免费在线视频 | 草莓福利视频在线观看 | 黄色片的网站 | h视频免费看 | 可以看逼的视频 | 99在线在线视频免费视频观看 | 一级毛片手机在线观看 | 精品成人免费一区二区三区 | 国产视频在线观看免费 | chinese xxxxhd videos麻豆 | 在线观看中文字幕av | 午夜神马电影网 | 国内精品伊人久久 | 日韩精品一区二区三区中文 | 久久久久国产一区二区三区不卡 | 亚洲国产一区二区三区 | 美女性感毛片 | 国产在线观看免费视频软件 | 精品欧美一区二区精品久久 | 国产手机在线视频 | 国产精品爱久久久久久久 | 日本在线观看视频网站 | 99欧美视频| 久久99亚洲精品 | 91精品久久久久久久久网影视 | 在线播放污|