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

python讀取pdf格式文檔的實現(xiàn)代碼

 更新時間:2021年04月01日 16:14:47   作者:十年如夢>  
這篇文章主要給大家介紹了關于python讀取pdf格式文檔的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

python讀取pdf文檔

一、 準備工作

安裝對應的庫
	pip install pdfminer3k
	pip install pdfminer.six 

二、部分變量的含義

PDFDocument(pdf文檔對象)
PDFPageInterpreter(解釋器)
PDFParser(pdf文檔分析器)
PDFResourceManager(資源管理器)
PDFPageAggregator(聚合器)
LAParams(參數(shù)分析器)

三、PDFMiner類之間的關系

PDFMiner的相關文檔(點擊跳轉)

四、代碼實現(xiàn)

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# datetime:2021/3/17 12:12
# software: PyCharm
# version: python 3.9.2

def changePdfToText(filePath):
 """
 解析pdf 文本,保存到同名txt文件中

 param:
 filePath: 需要讀取的pdf文檔的目錄
 introduced module:
 from pdfminer.pdfpage import PDFPage
 from pdfminer.pdfparser import PDFParser
 from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
 from pdfminer.converter import PDFPageAggregator
 from pdfminer.layout import LAParams
 from pdfminer.pdfdocument import PDFDocument, PDFTextExtractionNotAllowed
 import os.path
 """
 file = open(filePath, 'rb') # 以二進制讀模式打開
 # 用文件對象來創(chuàng)建一個pdf文檔分析器
 praser = PDFParser(file)
 # 創(chuàng)建一個PDF文檔
 doc = PDFDocument(praser, '') # praser :上面創(chuàng)建的pdf文檔分析器 ,第二個參數(shù)是密碼,設置為空就好了
 # 連接分析器 與文檔對象
 praser.set_document(doc)
 # 檢測文檔是否提供txt轉換,不提供就忽略
 if not doc.is_extractable:
 raise PDFTextExtractionNotAllowed
 # 創(chuàng)建PDf 資源管理器 來管理共享資源
 rsrcmgr = PDFResourceManager()
 # 創(chuàng)建一個PDF設備對象
 laparams = LAParams()
 device = PDFPageAggregator(rsrcmgr, laparams=laparams)
 # 創(chuàng)建一個PDF解釋器對象
 interpreter = PDFPageInterpreter(rsrcmgr, device)
 result = [] # 內(nèi)容列表
 # 循環(huán)遍歷列表,每次處理一個page的內(nèi)容
 for page in PDFPage.create_pages(doc):
 interpreter.process_page(page)
 # 接受該頁面的LTPage對象
 layout = device.get_result()
 for x in layout:
  if hasattr(x, "get_text"):
  result.append(x.get_text())
  fileNames = os.path.splitext(filePath) # 分割
  # 以追加的方式打開文件
  with open(fileNames[0] + '.txt', 'a', encoding="utf-8") as f:
   results = x.get_text()
   # print(results) 這個句可以取消注釋就可以在控制臺將所有內(nèi)容輸出了
   f.write(results) # 寫入文件

# 調(diào)用示例 :

# path = u'E:\\1.pdf'
# changePdfToText(path)

利用PyPDF2實現(xiàn)了對pdf文字內(nèi)容的提取

from PyPDF2 import PdfFileReader

# 定義獲取pdf內(nèi)容的方法
def getPdfContent(filename):
  # 獲取PdfFileReader對象
  pdf = PdfFileReader(open(filename, "rb"))
  content = "" #content是輸出文本
  for i in range(0,pdf.getNumPages()): #遍歷每一頁
    pageObj = pdf.getPage(i)
    try:
      extractedText = pageObj.extractText()#導出每一頁的內(nèi)容,如果當前頁有圖片的話就跳過
      content += extractedText + "\n"
    except BaseException:
      pass
  return content.encode("ascii", "ignore")


# 將獲取的內(nèi)容寫入txt文件
with open("test.txt","w") as f:
  count=0 #count的作用是限制每一行的文字個數(shù),本人設置的是十行
  #將獲取的文本變成字符串并用空白隔開
  for item in str(getPdfContent("test.pdf")).split(" "):
    # 如果當前文字以句號結尾就換行
    if item[-1]==".":
      f.write(item+"\n")
      count=0
    else:
      f.write(item+" ")
      count +=1
    # 如果寫了十個字就換行
    if count==10:
      f.write("\n")
      # 重置count
      count = 0

總結

到此這篇關于python讀取pdf格式文檔的文章就介紹到這了,更多相關python讀取pdf文檔內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • python中裝飾器的理解與使用詳解

    python中裝飾器的理解與使用詳解

    這篇文章主要介紹了python中裝飾器的理解與使用詳解,裝飾器本質(zhì)上是一個閉包函數(shù),其作用在于可以為其他函數(shù)增加額外功能,裝飾器的返回值是一個函數(shù)對象,需要的朋友可以參考下
    2023-07-07
  • Python3中_(下劃線)和__(雙下劃線)的用途和區(qū)別

    Python3中_(下劃線)和__(雙下劃線)的用途和區(qū)別

    經(jīng)常會看到以下劃線或者雙下劃線開頭的方法或者屬性,到底它們有什么作用,又有什么樣的區(qū)別呢?今天我們來總結一下,感興趣的小伙伴們可以參考一下
    2019-04-04
  • Python運算符之Inplace運算符的使用教程

    Python運算符之Inplace運算符的使用教程

    Inplace運算符的行為與普通運算符相似,只是在可變目標和不可變目標的情況下它們以不同的方式起作用。本文將通過示例帶大家了解Inplace運算符的使用,需要的可以參考一下
    2022-09-09
  • python實現(xiàn)flappy bird游戲

    python實現(xiàn)flappy bird游戲

    這篇文章主要為大家詳細介紹了python實現(xiàn)flappy bird游戲,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • Python中itertools的用法詳解

    Python中itertools的用法詳解

    循環(huán)器(iterator)是對象的容器,包含有多個對象。這篇文章主要介紹了python itertools用法,需要的朋友可以參考下
    2020-02-02
  • Python借助with語句實現(xiàn)代碼段只執(zhí)行有限次

    Python借助with語句實現(xiàn)代碼段只執(zhí)行有限次

    這篇文章主要介紹了Python借助with語句實現(xiàn)代碼段只執(zhí)行有限次,首先要定義一個能夠在with語句中使用的類實現(xiàn)enter和exit,下文詳細介紹需要的小伙伴可以參考一下
    2022-03-03
  • Python數(shù)據(jù)結構之遞歸可視化詳解

    Python數(shù)據(jù)結構之遞歸可視化詳解

    遞歸函數(shù)是直接調(diào)用自己或通過一系列語句間接調(diào)用自己的函數(shù)。遞歸在程序設計有著舉足輕重的作用,在很多情況下,借助遞歸可以優(yōu)雅的解決問題。本文主要介紹了如何利用可視化方式來了解遞歸函數(shù)的執(zhí)行步驟,需要的可以參考一下
    2022-04-04
  • Python3.x+pycharm+Anaconda中縮小打包的.exe體積的問題

    Python3.x+pycharm+Anaconda中縮小打包的.exe體積的問題

    這篇文章主要介紹了Python3.x+pycharm+Anaconda中縮小打包的.exe體積的問題,本文通過圖文實例相結合給大家分享解決方案,需要的朋友可以參考下
    2021-08-08
  • python從sqlite讀取并顯示數(shù)據(jù)的方法

    python從sqlite讀取并顯示數(shù)據(jù)的方法

    這篇文章主要介紹了python從sqlite讀取并顯示數(shù)據(jù)的方法,涉及Python操作SQLite數(shù)據(jù)庫的讀取及顯示相關技巧,需要的朋友可以參考下
    2015-05-05
  • 使用NumPy和pandas對CSV文件進行寫操作的實例

    使用NumPy和pandas對CSV文件進行寫操作的實例

    今天小編就為大家分享一篇使用NumPy和pandas對CSV文件進行寫操作的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06

最新評論

色达县| 原平市| 朔州市| 皮山县| 肇源县| 长子县| 徐汇区| 宁化县| 汉川市| 松江区| 申扎县| 兴仁县| 开封县| 金昌市| 永城市| 普洱| 松溪县| 高陵县| 咸宁市| 温泉县| 湘潭市| 莎车县| 南皮县| 东宁县| 徐汇区| 普陀区| 上饶县| 镇雄县| 申扎县| 垫江县| 红河县| 八宿县| 榕江县| 叶城县| 高州市| 武穴市| 七台河市| 开封县| 抚州市| 绍兴县| 朔州市|