自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

手把手|20行Python代碼教你批量將PDF文件轉(zhuǎn)為Word格式(包教包會(huì))

開發(fā) 后端
很多時(shí)候在學(xué)習(xí)時(shí)發(fā)現(xiàn)許多文檔都是PDF格式,PDF格式卻不利于學(xué)習(xí)使用,因此需要將PDF轉(zhuǎn)換為Word文件,但或許你從網(wǎng)上下載了很多軟件,但只能轉(zhuǎn)換前五頁(yè)(如WPS等),要不就是需要收費(fèi),那有沒有免費(fèi)的轉(zhuǎn)換軟件呢?菜鳥分析給各位帶來了一個(gè)免費(fèi)簡(jiǎn)單快速的方法,手把手教你用Python批量處理PDF格式文件,獲取自己想要的內(nèi)容,存為word形式。

在日常工作或?qū)W習(xí)中,經(jīng)常會(huì)遇到這樣的無(wú)奈:

“小任,你把這個(gè)PDF中的文件碼出來發(fā)我”

倒霉,2M的PDF12點(diǎn)也完不了??!

[[221735]]

很多時(shí)候在學(xué)習(xí)時(shí)發(fā)現(xiàn)許多文檔都是PDF格式,PDF格式卻不利于學(xué)習(xí)使用,因此需要將PDF轉(zhuǎn)換為Word文件,但或許你從網(wǎng)上下載了很多軟件,但只能轉(zhuǎn)換前五頁(yè)(如WPS等),要不就是需要收費(fèi),那有沒有免費(fèi)的轉(zhuǎn)換軟件呢?

so,菜鳥分析給各位帶來了一個(gè)免費(fèi)簡(jiǎn)單快速的方法,手把手教你用Python批量處理PDF格式文件,獲取自己想要的內(nèi)容,存為word形式。

在實(shí)現(xiàn)PDF轉(zhuǎn)Word功能之前,我們需要一個(gè)python的編寫和運(yùn)行環(huán)境,同時(shí)安裝好相關(guān)的依賴包。 對(duì)于python環(huán)境,我們推薦使用PyCharm。 在本地電腦環(huán)境,anaconda提供了非常便利的安裝和部署。

PDF轉(zhuǎn)Word功能所需的依賴包如下:

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

一、前期準(zhǔn)備工作

說明:菜鳥分析是在Windows7下使用python***的3.6版本

1.安裝pdfminer3k模塊

安裝anaconda后,直接可以通過pip安裝

2.若安裝不成功,可以試試下面方法

首先下載pdfminer3k:https://pypi.python.org/pypi/pdfminer3k;然后安裝pdfminer

將下載好的pdfminer3k解壓到D:或其他合適的盤符,通過win+r 打開運(yùn)行窗口,輸入cmd;

輸入D:切換到D盤,cd pdfminer3k(pdf解壓的文件夾),輸入setup.py install安裝軟件。

最終顯示Finished,則代表成功

二、代碼實(shí)操

導(dǎo)入相關(guān)包 

  1. from pdfminer.pdfparser import PDFParser, PDFDocument  
  2. from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter  
  3. from pdfminer.layout import LAParams  
  4. from pdfminer.converter import PDFPageAggregator  

整體思路為:構(gòu)造文檔對(duì)象,解析文檔對(duì)象,提取所需內(nèi)容

構(gòu)造文檔對(duì)象

構(gòu)造解釋器

2.導(dǎo)入需要解析的PDF文件

將所需解析的文件與執(zhí)行代碼放到同一個(gè)目錄下,如圖:

test.pdf內(nèi)容

3.具體代碼如下: 

  1. from pdfminer.pdfparser import PDFParser, PDFDocument  
  2. from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter 
  3. from pdfminer.layout import LAParams  
  4. from pdfminer.converter import PDFPageAggregator  
  5. from pdfminer.pdfinterp import PDFTextExtractionNotAllowed  
  6.  
  7. def parse():  
  8.     #rb以二進(jìn)制讀模式打開本地pdf文件  
  9.     fn = open('test.pdf','rb') 
  10.     #創(chuàng)建一個(gè)pdf文檔分析器  
  11.     parser = PDFParser()  
  12.     #創(chuàng)建一個(gè)PDF文檔  
  13.     doc = PDFDocument()  
  14.     #連接分析器 與文檔對(duì)象  
  15.     parser.set_document()  
  16.     doc.set_parser()  
  17.  
  18.     # 提供初始化密碼doc.initialize("lianxipython" 
  19.     # 如果沒有密碼 就創(chuàng)建一個(gè)空的字符串  
  20.     doc.initialize("" 
  21.     # 檢測(cè)文檔是否提供txt轉(zhuǎn)換,不提供就忽略  
  22.     if not doc.is_extractable:  
  23.         raise PDFTextExtractionNotAllowed  
  24.     else 
  25.         #創(chuàng)建PDf資源管理器  
  26.         resource = PDFResourceManager()  
  27.         #創(chuàng)建一個(gè)PDF參數(shù)分析器  
  28.         laparams = LAParams()  
  29.         #創(chuàng)建聚合器,用于讀取文檔的對(duì)象  
  30.         device = PDFPageAggregator(resource,laparams=laparams)  
  31.         #創(chuàng)建解釋器,對(duì)文檔編碼,解釋成Python能夠識(shí)別的格式  
  32.         interpreter = PDFPageInterpreter(resource,device)  
  33.         # 循環(huán)遍歷列表,每次處理一頁(yè)的內(nèi)容  
  34.         # doc.get_pages() 獲取page列表  
  35.         for page in doc.get_pages():  
  36.             #利用解釋器的process_page()方法解析讀取單獨(dú)頁(yè)數(shù)  
  37.             interpreter.process_page(page)  
  38.             #使用聚合器get_result()方法獲取內(nèi)容  
  39.             layout = device.get_result()  
  40.             #這里layout是一個(gè)LTPage對(duì)象,里面存放著這個(gè)page解析出的各種對(duì)象  
  41.             for out in layout:  
  42.                 #判斷是否含有g(shù)et_text()方法,獲取我們想要的文字  
  43.                 if hasattr(out,"get_text"):  
  44.                     print(out.get_text())  
  45.                     with open('test.txt','a'as f:  
  46.                         f.write(out.get_text()+'\n' 
  47.  
  48. if __name__ == '__main__' 
  49.     parse()  

最終得到的test.txt結(jié)果如下:

 

結(jié)束:對(duì)于Python批量PDF轉(zhuǎn)Word的操作介紹就到此,本文僅僅作為一種運(yùn)用庫(kù)展示代碼編寫過程,具體技術(shù)還需要有興趣的朋友,與我一起討論專研,互相學(xué)習(xí)進(jìn)步。 

責(zé)任編輯:龐桂玉 來源: Python愛好者社區(qū)
相關(guān)推薦

2021-05-27 11:10:42

Python開源包代碼

2021-02-10 09:34:40

Python文件的壓縮PyCharm

2014-01-22 09:19:57

JavaScript引擎

2021-09-26 16:08:23

CC++clang_forma

2017-07-19 13:27:44

前端Javascript模板引擎

2017-10-29 21:43:25

人臉識(shí)別

2020-08-12 09:07:53

Python開發(fā)爬蟲

2009-11-09 14:57:37

WCF上傳文件

2021-07-14 09:00:00

JavaFX開發(fā)應(yīng)用

2011-01-10 14:41:26

2011-05-03 15:59:00

黑盒打印機(jī)

2024-01-26 08:16:48

Exporter開源cprobe

2022-03-29 11:11:11

TortoisGitGitee碼云

2022-07-28 16:06:08

app分身

2009-07-03 17:15:31

jsp上傳文件

2021-03-02 09:05:13

Python

2022-02-08 08:41:37

零拷貝磁盤CPU

2022-01-08 20:04:20

攔截系統(tǒng)調(diào)用

2023-04-26 12:46:43

DockerSpringKubernetes

2022-12-07 08:42:35

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)