婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > python解析PDF程序代碼

python解析PDF程序代碼

熱門標(biāo)簽:無錫客服外呼系統(tǒng)一般多少錢 百度地圖標(biāo)注位置怎么修改 洪澤縣地圖標(biāo)注 地圖標(biāo)注視頻廣告 北京電信外呼系統(tǒng)靠譜嗎 高德地圖標(biāo)注是免費(fèi)的嗎 梅州外呼業(yè)務(wù)系統(tǒng) 老人電話機(jī)器人 大連crm外呼系統(tǒng)

說在前面

和word的文本相比PDF更類似于一張張圖片,圖上放著一個(gè)個(gè)文字。對其的解析是將圖片上的文字提取到text文件中,方便之后的分析。

添加依賴

在python的環(huán)境中安裝PDFminer3k,不要裝錯(cuò)了,一開始我裝的是PDFminer,結(jié)果有幾個(gè)包不能用
pip install pdfminer3k

源程序代碼

#!/usr/bin/env python3
# -*- coding:utf-8 -*-
# pip3 install pdfminer3k

import os
from pdfminer.converter import PDFPageAggregator
from pdfminer.layout import LAParams, LTTextBoxHorizontal
from pdfminer.pdfparser import PDFParser, PDFDocument
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter, PDFTextExtractionNotAllowed
from pdfminer.pdfdevice import PDFDevice


def read_pdf(pdf_name, result_name):
    # 以二進(jìn)制讀模式打開
    fp = open(pdf_name, 'rb')
    # 用文件對象來創(chuàng)建一個(gè)pdf文檔分析器
    parser = PDFParser(fp)
    # 創(chuàng)建一個(gè)pdf文檔
    doc = PDFDocument()
    # 連接分析器 與文檔對象
    parser.set_document(doc)
    doc.set_parser(parser)
    # 提供初始密碼,如果沒有密碼 就創(chuàng)建一個(gè)空的字符串
    doc.initialize('')
    # 檢測文檔是否提供txt轉(zhuǎn)換,不提供就拋出異常
    if not doc.is_extractable:
        raise PDFTextExtractionNotAllowed
    # 創(chuàng)建PDf 資源管理器 來管理共享資源
    rsrcmgr = PDFResourceManager()
    # 創(chuàng)建一個(gè)PDF設(shè)備對象
    laparams = LAParams()
    device = PDFPageAggregator(rsrcmgr, laparams=laparams)
    # 創(chuàng)建一個(gè)PDF解釋器對象
    interpreter = PDFPageInterpreter(rsrcmgr, device)

    with open(result_name, "w", encoding="u8") as fd_out:
        # 循環(huán)遍歷列表,每次處理一個(gè)page的內(nèi)容
        for i, page in enumerate(doc.get_pages(), 1):
            index = "===========《第{}頁》===========".format(i)
            print(index)
            fd_out.write(index + "\n")
            interpreter.process_page(page)
            # 接受該頁面的LTPage對象
            layout = device.get_result()
            for x in layout:
                # 這里layout是一個(gè)LTPage對象 里面存放著 這個(gè)page解析出的各種對象 一般包括LTTextBox,
                # LTFigure, LTImage, LTTextBoxHorizontal 等等 想要獲取文本就獲得對象的text屬性
                if not isinstance(x, LTTextBoxHorizontal):
                    continue
                results = x.get_text()
                print(results)
                fd_out.write(results)

if __name__ == '__main__':

    # 獲取讀取文件夾
    filePath = '../PDFfile'
    #遍歷文件夾
    for i,j,k in os.walk(filePath):
        for m in k:
            # 格式化輸出的名稱和地址
            result = '../TextFile/' + m[:-4] + '.txt'
            # 格式化源文件路徑
            fileName = i + '/' + m
            # 調(diào)用函數(shù)解析
            read_pdf(fileName, result)

參考以下代碼內(nèi)容:python 讀取pdf文本內(nèi)容

#!/usr/bin/env python3
#-*- coding:utf-8 -*-
# pip3 install pdfminer3k
  
from pdfminer.converter import PDFPageAggregator
from pdfminer.layout import LAParams, LTTextBoxHorizontal
from pdfminer.pdfparser import PDFParser, PDFDocument
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter, PDFTextExtractionNotAllowed
from pdfminer.pdfdevice import PDFDevice
 
def read_pdf(pdf_name, result_name):
    # 以二進(jìn)制讀模式打開
    fp = open(pdf_name, 'rb')
    # 用文件對象來創(chuàng)建一個(gè)pdf文檔分析器
    parser = PDFParser(fp)
    # 創(chuàng)建一個(gè)pdf文檔
    doc = PDFDocument()
    # 連接分析器 與文檔對象
    parser.set_document(doc)
    doc.set_parser(parser)
    # 提供初始密碼,如果沒有密碼 就創(chuàng)建一個(gè)空的字符串
    doc.initialize('')
    # 檢測文檔是否提供txt轉(zhuǎn)換,不提供就拋出異常
    if not doc.is_extractable:
        raise PDFTextExtractionNotAllowed
    # 創(chuàng)建PDf 資源管理器 來管理共享資源
    rsrcmgr = PDFResourceManager()
    # 創(chuàng)建一個(gè)PDF設(shè)備對象
    laparams = LAParams()
    device = PDFPageAggregator(rsrcmgr, laparams=laparams)
    # 創(chuàng)建一個(gè)PDF解釋器對象
    interpreter = PDFPageInterpreter(rsrcmgr, device)
     
    with open(result_name,"w",encoding="u8") as fd_out:
        # 循環(huán)遍歷列表,每次處理一個(gè)page的內(nèi)容
        for i,page in enumerate(doc.get_pages(),1):
            index = "===========《第{}頁》===========".format(i)
            print(index)
            fd_out.write(index + "\n")
            interpreter.process_page(page)
            # 接受該頁面的LTPage對象
            layout = device.get_result()
            for x in layout:
                # 這里layout是一個(gè)LTPage對象 里面存放著 這個(gè)page解析出的各種對象 一般包括LTTextBox,
                # LTFigure, LTImage, LTTextBoxHorizontal 等等 想要獲取文本就獲得對象的text屬性
                if not isinstance(x, LTTextBoxHorizontal):
                    continue
                results = x.get_text()
                print(results)
                fd_out.write(results)   
                       
if __name__ == '__main__':
    pdf_name = 'test.pdf'
    result = 'test.txt'
    read_pdf(pdf_name, result)

以上就是python解析PDF的詳細(xì)內(nèi)容,更多關(guān)于python解析PDF的資料請關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:
  • python實(shí)現(xiàn)csdn全部博文下載并轉(zhuǎn)PDF
  • Python合并多張圖片成PDF
  • Python提取PDF指定內(nèi)容并生成新文件
  • 詳解用Python把PDF轉(zhuǎn)為Word方法總結(jié)
  • python操作mysql、excel、pdf的示例
  • python pdfkit 中文亂碼問題的解決方案
  • python 三種方法提取pdf中的圖片
  • Python實(shí)現(xiàn)給PDF添加水印的方法
  • Python讀取pdf表格寫入excel的方法
  • Python 多張圖片合并成一個(gè)pdf的參考示例

標(biāo)簽:吉林 怒江 長春 岳陽 洛陽 安慶 泉州 清遠(yuǎn)

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《python解析PDF程序代碼》,本文關(guān)鍵詞  python,解析,PDF,程序,代碼,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《python解析PDF程序代碼》相關(guān)的同類信息!
  • 本頁收集關(guān)于python解析PDF程序代碼的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 漠河县| 阜平县| 乌兰察布市| 镇巴县| 阜南县| 屏边| 滦平县| 麟游县| 五台县| 石柱| 宜兰市| 北流市| 双柏县| 巴林左旗| 曲阳县| 汾西县| 汝阳县| 康马县| 喀喇| 张家港市| 霍邱县| 东海县| 新郑市| 台中市| 古浪县| 鄂伦春自治旗| 古丈县| 五华县| 南宁市| 凤山县| 长阳| 兴文县| 衡阳市| 吕梁市| 临桂县| 常宁市| 鄯善县| 定兴县| 内丘县| 白沙| 桃源县|