本文的文字及圖片來源於網絡,僅供學習、交流使用,不具備任何商業用途,版權歸原做者全部,若有問題請及時聯繫咱們以做處理。python
那麼,有沒有什麼辦法能夠秒速解決這些問題呢?沒錯,Python能夠。廢話很少說,直接上實操。面試
1、PDF轉Text網絡
首先,安裝一下操做PDF的庫pdfplumber。pdfplumber 能夠很好的讀取 PDF 文件內容和提取 PDF 中的表格,這個庫不屬於 Python 標準庫,須要單獨安裝。app
pip3 install pdfplumber
安裝好了以後,咱導入pdfplumber。工具
import pdfplumber
打開PDF論文,並提取論文第2頁面內容。學習
with pdfplumber.open("興業B信託項目風險管理研究.pdf") as p: page = p.pages[2] textdata = page.extract_text()
打印一下textdata,提取到了第2頁的內容以下:優化
此時,你也許疑問了,一篇碩士論文至少也50多頁吧。沒錯,我下載的這篇論文有75頁,咱還得加個for循環,把全部頁面內容提取下來。spa
with pdfplumber.open("興業B信託項目風險管理研究.pdf") as p: for i in range(75): page = p.pages[i] textdata = page.extract_text() #print(textdata)
內容都提取出來了,接下來就是保存爲text文本。"a"爲指定寫入模式爲追加寫入。完整代碼以下:code
#PDF轉Text import pdfplumber with pdfplumber.open("興業B信託項目風險管理研究.pdf") as p: for i in range(75): page = p.pages[i] textdata = page.extract_text() #print(textdata) data = open("text.text", "a") data.write(textdata)
2、PDF轉Wordblog
須要安裝一下操做Word的庫python-docx。
pip3 install python-docx
導入Document方法。
from docx import Document
打開PDF論文,並提取論文第2頁面內容。
with pdfplumber.open("興業B信託項目風險管理研究.pdf") as p: page = p.pages[2] textdata = page.extract_text()
新建Word文檔,並將提取的內容存儲到裏面。
document = Document() #新建一個空白的word文檔 content = document.add_paragraph(textdata) #在文檔中添加正文段落,將變量textdata導進去 document.save("word.docx") #保存文檔docx,命名爲word
完整代碼以下:
#PDF轉Word1import pdfplumber from docx import Document with pdfplumber.open("興業B信託項目風險管理研究.pdf") as p: page = p.pages[2] textdata = page.extract_text() #print(textdata) document = Document() #新建一個空白的word文檔 content = document.add_paragraph(textdata) #在文檔中添加正文段落,將變量textdata導進去 document.save("word.docx") #保存文檔docx,命名爲word
若是要提取所有,加循環。
3、PDF轉Excel
這裏所說的PDF轉Excel不是全文轉Excel,而是對論文中的部分表格進行格式轉換,方便在Excel中對數據進行篩選、計算等操做。
本案例PDF論文中第69-75頁爲附錄部分,貼的是財務報表數據,截取部份內容,長這樣:
首先,安裝並導入操做Excel表格的庫openpyxl。
pip3 install openpyxlfrom openpyxl import Workbook
打開PDF論文,提取論文第69-75頁表格內容,注意這裏range左開右閉。
with pdfplumber.open("興業B信託項目風險管理研究.pdf") as p: for i in range(68,75): #遍歷69頁-75頁 page = p.pages[i] table = page.extract_table() #print(table)
新建空白的Excel文件,按行寫入從PDF提取的表格數據內容。完整代碼以下:
#PDF轉Excel import pdfplumber from openpyxl import Workbook with pdfplumber.open("興業B信託項目風險管理研究.pdf") as p: workbook = Workbook() #新建空白Excel工做簿 sheet = workbook.active #激活sheet for i in range(68,75): #遍歷69頁-75頁 page = p.pages[i] table = page.extract_table() #提取表格數據 #print(table) for row in table: #遍歷全部行 #print(row) sheet.append(row) #按行追加寫入數據 workbook.save("Excel.xlsx") #保存文件,命名爲Excel i += 1 print("第%d頁PDF提取完成"%i) #提示提取進度
最終效果以下,好像還能夠。
結 語
到這呢,Python對PDF論文的簡單操做就基本結束了。但還有一些值得探討的問題,好比若是有100個PDF且頁數都不同怎麼辦?即便所有提取下來,文件的格式問題若是優化?提取的多個Excel表格如何合併到一個sheet?首先確定的告訴你,python都能解決,我之後也還會寫相關的Python操做。
歡迎點擊右上角關注小編,除了分享技術文章以外還有不少福利,私信學習資料能夠領取包括不限於Python實戰演練、PDF電子文檔、面試集錦、學習資料等。