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, 导出数据为文件