最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python實(shí)現(xiàn)pdf文檔轉(zhuǎn)txt的方法示例

 更新時(shí)間:2018年01月19日 10:47:09   作者:肥寶Fable  
這篇文章主要介紹了Python實(shí)現(xiàn)pdf文檔轉(zhuǎn)txt的方法,結(jié)合實(shí)例形式分析了Python基于第三方庫(kù)pdfminier實(shí)現(xiàn)針對(duì)pdf格式文檔的讀取、轉(zhuǎn)換等相關(guān)操作技巧,需要的朋友可以參考下

本文實(shí)例講述了Python實(shí)現(xiàn)pdf文檔轉(zhuǎn)txt的方法。分享給大家供大家參考,具體如下:

首先,這是一個(gè)比較粗糙的版本,因?yàn)橐呀?jīng)夠用了,而且對(duì)pdf的格式不熟悉,所以暫時(shí)沒有進(jìn)一步優(yōu)化。

還有,這是轉(zhuǎn)成txt的,所以如果是有圖片的pdf是無法保存圖片的。

至于本來就是圖片的文本,這里是無法分析出來的。那些圖片的pdf,估計(jì)要用圖形匹配的方式來處理,類似于超速拍攝的車牌識(shí)別。

不過這樣的程度,已經(jīng)不是文本處理了。扯遠(yuǎn)了。。。

轉(zhuǎn)出來的文字,好像按照pdf里面的所展示的來換行了,看不到有什么規(guī)則還原,我也不知道怎么處理,將就著用吧。

另外,初始代碼是網(wǎng)上找的,最初地址不知道哪里了。

用到了第三方庫(kù)pdfminier

pdfminer庫(kù)的地址 https://pypi.python.org/pypi/pdfminer3k

下載后,用cmd執(zhí)行命令 setup.py install

安裝完之后打開eclipse會(huì)彈出要求加載一些東西,點(diǎn)擊確定就行了。

再來看看代碼:

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
class CPdf2TxtManager():
  '''''
  classdocs
  '''
  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()
      # 這里layout是一個(gè)LTPage對(duì)象 里面存放著 這個(gè)page解析出的各種對(duì)象 一般包括LTTextBox, LTFigure, LTImage, LTTextBoxHorizontal 等等 想要獲取文本就獲得對(duì)象的text屬性,
      for x in layout:
        if (isinstance(x, LTTextBoxHorizontal)):
          pdfStr = pdfStr + x.get_text() + '\n'
    fileNames = os.path.splitext(filePath)
    file2 = open(fileNames[0] + '.txt','wb')#保存這些內(nèi)容
    file2.write(pdfStr.encode())
    file2.close()
    file.close()
if __name__ == '__main__':
  '''''
   解析pdf 文本,保存到txt文件中
  '''
  path = r'C:\Users\Administrator\Desktop\《精力管理》.pdf'
  pdf2TxtManager = CPdf2TxtManager()
  pdf2TxtManager.changePdfToText(path)

更多Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python文件與目錄操作技巧匯總》、《Python編碼操作技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門與進(jìn)階經(jīng)典教程

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

相關(guān)文章

  • 如何在mac版pycharm選擇python版本

    如何在mac版pycharm選擇python版本

    這篇文章主要介紹了如何在mac版pycharm選擇python版本,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • python處理變量交換與字符串及判斷的小妙招

    python處理變量交換與字符串及判斷的小妙招

    本文記錄一些 Python 日常編程中的小妙招,并使用 IPython 進(jìn)行交互測(cè)試,讓我們更好的了解和學(xué)習(xí) Python 的一些特性,對(duì)大家的學(xué)習(xí)或工作具有一定的價(jià)值,需要的朋友可以參考下
    2021-09-09
  • Python光學(xué)仿真之對(duì)光的干涉理解學(xué)習(xí)

    Python光學(xué)仿真之對(duì)光的干涉理解學(xué)習(xí)

    這篇文章主要為大家介紹了Python光學(xué)仿真之對(duì)光的干涉理解學(xué)習(xí),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
    2021-10-10
  • Django集成MongoDB實(shí)現(xiàn)過程解析

    Django集成MongoDB實(shí)現(xiàn)過程解析

    這篇文章主要介紹了Django集成MongoDB實(shí)現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-12-12
  • Python中拆包的實(shí)現(xiàn)

    Python中拆包的實(shí)現(xiàn)

    拆包是一個(gè)非常實(shí)用且常見的操作,它能夠簡(jiǎn)化代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-07-07
  • python使用paramiko實(shí)現(xiàn)ssh的功能詳解

    python使用paramiko實(shí)現(xiàn)ssh的功能詳解

    這篇文章主要介紹了python使用paramiko實(shí)現(xiàn)ssh的功能詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • python 計(jì)算數(shù)組中每個(gè)數(shù)字出現(xiàn)多少次--“Bucket”桶的思想

    python 計(jì)算數(shù)組中每個(gè)數(shù)字出現(xiàn)多少次--“Bucket”桶的思想

    這篇文章主要介紹了python 計(jì)算數(shù)組中每個(gè)數(shù)字出現(xiàn)多少次--“Bucket”桶的思想,需要的朋友可以參考下
    2017-12-12
  • Python操作csv文件之csv.writer()和csv.DictWriter()方法的基本使用

    Python操作csv文件之csv.writer()和csv.DictWriter()方法的基本使用

    csv文件是一種逗號(hào)分隔的純文本形式存儲(chǔ)的表格數(shù)據(jù),Python內(nèi)置了CSV模塊,可直接通過該模塊實(shí)現(xiàn)csv文件的讀寫操作,下面這篇文章主要給大家介紹了關(guān)于Python操作csv文件之csv.writer()和csv.DictWriter()方法的基本使用,需要的朋友可以參考下
    2022-09-09
  • Python圖形化界面基礎(chǔ)篇之如何使用彈出窗口和對(duì)話框

    Python圖形化界面基礎(chǔ)篇之如何使用彈出窗口和對(duì)話框

    對(duì)于Python程序員來說,處理彈出窗口似乎并不是一個(gè)常見的任務(wù),這篇文章主要給大家介紹了關(guān)于Python圖形化界面基礎(chǔ)篇之如何使用彈出窗口和對(duì)話框的相關(guān)資料,需要的朋友可以參考下
    2024-03-03
  • Django的開發(fā)步驟原來是這樣的

    Django的開發(fā)步驟原來是這樣的

    這篇文章主要為大家詳細(xì)介紹了Django的開發(fā)步驟,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02

最新評(píng)論

平乐县| 丁青县| 云南省| 永安市| 宁德市| 南昌县| 依安县| 车致| 邮箱| 集贤县| 金溪县| 博兴县| 信阳市| 元氏县| 大田县| 政和县| 华阴市| 砀山县| 新河县| 若羌县| 东光县| 罗定市| 西盟| 织金县| 广平县| 延边| 台南市| 晋州市| 读书| 扶绥县| 邵阳县| 桂东县| 北碚区| 星子县| 玉门市| 龙游县| 镇原县| 元氏县| 偃师市| 景东| 卢湾区|