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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值