当前位置: 首页 > article >正文

python+camelot库:提取pdf中的表格数据

camelot库支持将pdf中提取到的表格数据转为不同格式的文件保存。

安装:pip install camelot-py

运行报错处理,出现报错:from .core import TableList
ImportError: cannot import name 'TableList' from 'camelot.core' (E:\python\lib\site-packages\camelot\core\__init__.py)
原因是同时安装了camelot 和 camelot-py导致,卸载掉其中一个,两个库的用法一样。

支持将读取到的表格数据转为以下格式的文件:"csv", "html", "json", "markdown", "excel", "sqlite"

read_pdf参数:

filepath:pdf文件对象。

process_background:背景线处理(process_background=True)。

pages:要提取表格的页面范围,可以是单个页面或多个页面,如值为‘1-4’,表示1到4页,如写成‘1,4,6’表示提取第1,第4,第6页的数据。

flavor:PDF解析器的类型,默认为"lattice",常用选择"stream"。

table_areas:要提取表格的区域范围,可以是单个区域或区域范围的列表[x1,y1,x2,y2]。

password:如果PDF文件有密码,需要提供密码。

import camelot


def read_pdf_tables(pdf_path):
    tables = camelot.read_pdf(pdf_path, pages='1,3,6', flavor='stream', table_areas=['100,600,600,100'])

    tables.export(fr'{pdf_path.split(".")[0]}.html')  # 一次性将所有读取到的数据转为对应格式的文件

    for tb in tables:
        # 将单个页面提取到的数据转为对应格式的文件
        # tb.to_csv(fr'{pdf_path.split(".")[0]}.csv')
        # tb.to_html(fr'{pdf_path.split(".")[0]}.html')
        # tb.to_json(fr'{pdf_path.split(".")[0]}.json')
        # tb.to_markdown(fr'{pdf_path.split(".")[0]}.md')
        # tb.to_sqlite(fr'{pdf_path.split(".")[0]}.db')

        print(tb.df) # 打印数据
        print(tb.data)  # 列表数据形式打印获取到的数据
        
        # 打印没行,每列,每个单元格的位置
        print(tb.rows)
        print(tb.cols)
        print(tb.cells)

http://www.kler.cn/a/488281.html

相关文章:

  • Hadoop3.x 万字解析,从入门到剖析源码
  • List详解 - 双向链表的操作
  • 汽车基础软件AutoSAR自学攻略(三)-AutoSAR CP分层架构(2)
  • 51单片机——串口通信(重点)
  • 00000008_C并发编程与多线程
  • 和为0的四元组-蛮力枚举(C语言实现)
  • 工厂人员定位管理系统方案(二)人员精确定位系统架构设计,适用于工厂智能管理
  • 《零基础Go语言算法实战》【题目 2-1】使用一个函数比较两个整数
  • iOS - 数组的真实类型
  • .NET 终止或结束进程
  • [SAP ABAP] 使用LOOP AT...ASSIGNING FIELD-SYMBOL 直接更新内表数据
  • Unity3D使用GaussianSplatting加载高斯泼溅模型
  • React Error Boundary 错误边界限制
  • Java Web开发进阶——Spring Security基础与应用
  • 华为C语言编程规范总结
  • 用户界面的UML建模11
  • MIT 6.S081 Lab9 File System
  • jeecg-boot 表单选择一条数据保存
  • 深入学习Headers Exchange交换机
  • 打桩机:灾害救援中的 “应急尖兵”,稳固支撑的保障|鼎跃安全
  • 解锁无证身份核验:开启便捷安全新征程
  • 专精特新申报条件
  • 了解RabbitMQ的工作原理
  • tdengine数据库使用java连接
  • 使用 Docker 构建 preboot 交叉编译环境
  • 数据集-目标检测系列- 电话 测数据集 call_phone >> DataBall