0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Camelot模块的使用方法

科技绿洲 来源:Python实用宝典 作者:Python实用宝典 2023-11-01 10:02 次阅读

如果你有从PDF中批量提取表格的需求,那么这篇文章就是你的福音。

Python 第三方模块 Camelot 能够精准识别PDF中的表格信息,并提取为pandas数据结构,而且还能导出为多种格式:JSON,Excel,HTML和Sqlite。

下面给大家介绍这个模块的使用方法:

1.准备

开始之前,你要确保Python和pip已经成功安装在电脑上,如果没有,可以访问这篇文章:超详细Python安装指南 进行安装。

如果你用Python的目的是数据分析,可以直接安装Anaconda:Python数据分析与挖掘好帮手—Anaconda,它内置了Python和pip.

此外,推荐大家用VSCode编辑器,它有许多的优点:Python 编程的最好搭档—VSCode 详细指南

请选择以下任一种方式输入命令安装依赖

  1. Windows 环境 打开 Cmd (开始-运行-CMD)。
  2. MacOS 环境 打开 Terminal (command+空格输入Terminal)。
  3. 如果你用的是 VSCode编辑器 或 Pycharm,可以直接使用界面下方的Terminal.
pip install camelot-py[cv]

2.使用

最简单的使用方式如下:

import camelot
# 1.读取pdf
tables = camelot.read_pdf('foo.pdf', flavor='stream')
# 2.导出pdf所有的表格为csv文件
tables.export('foo.csv', f='csv') # json, excel, html, sqlite

第一行,导入了camelot这个模块。

第二行,以stream的模式读取当前目录的foo.pdf文件。

第三行,将所有表格数据导出为 foo.csv 文件,并保存在当前文件夹下。

相当简单,请注意,read_pdf 的 flavor 参数是可选的,如果你不带这个参数,请注意需要安装 ghostscript 这个驱动,因为它默认使用 ghostscript 去用 lattice 模式。

3.进阶

3.1 处理背景线:

图片

可以看到,很多表格的线都隐藏在背景中。这种表格默认是不支持的,这时候我们需要让程序能够自动识别这样的表格:

tables = camelot.read_pdf('background_lines.pdf', process_background=True)

增加 process_background=True 参数即可。

3.2 指定表格区域

某些情况下无法正确识别到PDF中的表格,此时手动设定左上角和右下角的边界可能是有效果的:

tables = camelot.read_pdf('table_areas.pdf', flavor='stream', table_areas=['316,499,566,337'])

其中 table_areas 接受格式为 x1,y1,x2,y2 的字符串,其中(x1,y1) -> 左上角, (x2,y2) -> 右下角。在PDF坐标空间中,页面的左下角是原点,坐标为(0,0)。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 模块
    +关注

    关注

    7

    文章

    2485

    浏览量

    46534
  • PDF
    PDF
    +关注

    关注

    1

    文章

    163

    浏览量

    33006
  • python
    +关注

    关注

    51

    文章

    4677

    浏览量

    83473
收藏 人收藏

    评论

    相关推荐

    红外寻迹模块使用方法

    `红外寻迹模块使用方法A) 检测到白色时指示灯亮,输出低电平 B)检测到黑色时指示灯灭,输出高电平`
    发表于 06-05 12:04

    天线的选择与使用方法

    无线模块的通信距离是一项重要指标,如何把有效通信距离最大化一直是大家疑惑的问题。本文根据调试经验及对天线的选择与使用方法做了一些说明,希望对工程师快速调试通信距离有所帮助。无线模块的通信距离是一项
    发表于 01-04 06:11

    小白求助关于4路红外循迹模块使用方法

    小白求助关于4路红外循迹模块使用方法
    发表于 10-13 06:35

    红外模块+电机驱动TB6612使用方法

    任务分析、红外模块+电机驱动TB6612使用方法
    发表于 01-07 07:57

    矩阵键盘的使用方法

    首先呢,大家都知道:历年的蓝桥杯单片机组都会考到按键模块;对于国赛来说,考矩阵键盘的概率远远高于独立按键,所以必须将矩阵键盘的用法吃透来。现在来给大家介绍矩阵键盘的使用方法(基于状态机)1、使用矩阵
    发表于 01-12 06:12

    IGBT驱动模块EXB841使用方法的改进

    IGBT驱动模块EXB841使用方法的改进 摘要: 本文对目前在电力电子技术中广泛使用的IGBT驱动模块EXB841的使用方法进行了改进,克服了EXB841本身的缺陷,提高了保护
    发表于 05-08 15:11 84次下载

    示波器的使用方法

    数字万用表使用方法和示波器的使用方法详解。
    发表于 03-14 10:38 31次下载

    AURORA的功能模块使用方法介绍

    本文将覆盖极光远程安全评估系统(以下简称极光或AURORA)的所有功能点,并详细介绍极光的主要功能模块使用方法
    发表于 09-22 16:36 12次下载
    AURORA的功能<b class='flag-5'>模块</b>和<b class='flag-5'>使用方法</b>介绍

    示波器的使用方法(三):示波器的使用方法详解

    示波器的使用方法并非很难,重点在于正确使用示波器的使用方法。往期文章中,小编对模拟示波器的使用方法和数字示波器的使用方法均有所介绍。为增进大家对示波器的
    的头像 发表于 12-24 20:37 2480次阅读

    三相电采集模块使用方法描述

    三相电采集模块使用方法描述
    的头像 发表于 12-28 15:04 1624次阅读

    STM32G0开发笔记:SD卡模块使用方法

    使用Platformio平台的libopencm3开发框架来开发STM32G0,下面介绍SD卡模块使用方法
    的头像 发表于 01-19 16:27 1414次阅读
    STM32G0开发笔记:SD卡<b class='flag-5'>模块</b>的<b class='flag-5'>使用方法</b>

    Python的PDF表格提取器-Camelot

    Python 第三方模块 Camelot 能够精准识别PDF中的表格信息,并提取为pandas数据结构,而且还能导出为多种格式:JSON,Excel,HTML和Sqlite。
    的头像 发表于 02-24 11:04 1699次阅读
    Python的PDF表格提取器-<b class='flag-5'>Camelot</b>

    Channel模块使用方法示例

    。在本教程中,我们将介绍 Rust 语言中的 Tokio 模块 channel,并提供几个示例,以帮助您更好地理解它的使用方法。 什么是 Tokio 模块 Channel? Tokio 模块
    的头像 发表于 09-20 11:47 509次阅读

    Camelot:Python超强大的PDF表格提取器

    :JSON,Excel,HTML和Sqlite。 下面给大家介绍这个模块使用方法: 1.准备 开始之前,你要确保Python和pip已经成功安装在电脑上,如果没有,可以访问这篇文章: 超详细Python
    的头像 发表于 10-21 10:57 731次阅读
    <b class='flag-5'>Camelot</b>:Python超强大的PDF表格提取器

    Camelot:超强大的PDF表格提取器

    :JSON,Excel,HTML和Sqlite。 下面给大家介绍这个模块使用方法: 1.准备 开始之前,你要确保Python和pip已经成功安装在电脑上,如果没有,可以访问这篇文章: 超详细Python
    的头像 发表于 10-30 09:44 301次阅读
    <b class='flag-5'>Camelot</b>:超强大的PDF表格提取器