python日常技巧(2)將pdf文件中的表格轉化成csv文件

  • 2019 年 11 月 21 日
  • 筆記

前文介紹

從 PDF 表格中提取表格數據時比較困難的。不久前,一位開發者提供了一個名為 Camelot 的工具,滿足大家從 PDF 文件中提取表格數據。

(1)安裝

  • 使用conda

安裝Camelot的最簡單方法是使用[conda](https://conda.io/docs/)進行安裝,這是[Anaconda]的軟體包管理器和環境管理系統。

 conda install -c conda-forge camelot-py

Camelot 支援 Python 2.7, 3.5, 3.6 and 3.7 包含 (Linux, macOS and Windows系統)。但是對於windows系統,你必須安裝ghostscript(https://www.ghostscript.com/download/gsdnld.html

  • 使用pip

安裝依賴包(包括Tkinter和ghostscript)之後,可以簡單地使用pip安裝Camelot:

pip install camelot-py[cv]

(2)示例

# -*- coding: utf-8 -*-  """  Created on Sat Nov 16 12:48:55 2019    @author: czh  """  %reset -f  %clear  # In[*]  import camelot  import os  os.chdir('D:\pywork\shuiyin')    # In[*]  >>> import camelot  >>> tables = camelot.read_pdf('foo.pdf') #類似於Pandas打開CSV文件的形式  # In[*]  >>> tables[0].df # get a pandas DataFrame!  >>> tables.export('foo.csv', f='csv', compress=True) # json, excel, html, sqlite,可指定輸出格式  >>> tables[0].to_csv('foo.csv') # to_json, to_excel, to_html, to_sqlite, 導出數據為文件