寫在前面
經常在學習或工作中需要從PDF獲取一些表格數據,直接用PDF閱讀器複製的話,很難複製出來,使用PDF轉Excel的軟件,又需要收費。這時候,可以使用我們強大的python,幾行代碼就能把pdf的表格內容抽取到Excel,順便學習一下。
本文介紹一個解析PDF的包使用過程,以及為何挑選這個解析包。
如何挑選python包
我們經常在網上看到一些python包,雖然功能一樣,但是包名卻不同。例如解析PDF的包,有好幾種,那麼我們應該怎麼挑選呢?這裡告訴大家一個方法,利用python官方文檔來決定,用哪個比較好。
- pdfplumber
首先,我們通過百度搜索 “包名+ pypi”。
這裡我們搜索 pdfplumber pypi
點擊進去,英文看不懂不要緊,點擊“releasese history”, 看到最新版本是2020年,就是今年發佈。說明這個包有人在維護著,所以這個包可以放心使用。就算這個包出了BUG,它下一版本也會修復的,所以不用擔心。
- camelot
來對比一下,另外一個PDF解析包,camelot,據說曾經是一個非常實用的pdf解析包,我們來看看它的官方文檔,七年之前就停更了、這個包用起來似乎就沒那麼好了,當然可以用,就是可能會出現與你的python環境會衝突,而且有BUG也不會有人去修復。
所以說,在挑選同類型包時,儘量挑選有人維護的python包,這樣即使出了問題,你也可以尋求到幫助。
代碼講解
這次代碼很簡單,就是pdfplumber的使用。
<code>import pdfplumber
import xlwt/<code>
pdflumber: PDF 文件解析包。
xlwt: 用於Excel文件的讀寫。
<code>workbook = xlwt.Workbook() # 定義workbook
sheet = workbook.add_sheet('Sheet1') # 添加sheet
pdf = pdfplumber.open("EAST文本檢測論文.pdf")
for page in pdf.pages:
for table in page.extract_tables():
for row in table:
print(row)
for j in range(len(row)):
sheet.write(i, j, row[j])
pdf.close()
# 保存Excel表
workbook.save('EAST文本檢測論文_01.xls'/<code>
pdfplumber 是按頁去解析PDF的,pdf.pages拿到所有頁面,extract_tables() 把頁面中的表格取出來,最後按照表格的格式賦值給Excel的每個單元格。
運行結果
PDF截圖
輸出結果
後臺私信我,回覆:python解析pdf。 我把源碼發你。最後,感謝大家的閱讀,祝大家工作生活愉快!
閱讀更多 IT可達鴨 的文章