You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Camelot提取PDF多表格并保留对应页码?

解决方案

Camelot提取的每个表格对象(Table)自带page属性,可直接获取该表格所在的PDF页码。你只需要修改循环逻辑,同时获取表格的序号和对应页码,再替换文件名中的占位符即可。

修改后的代码如下:

import camelot

tables = camelot.read_pdf('2003.pdf', flavor='stream', pages='8,9,10,14,15,18,24...', edge_tol=500, flag_size=True)
# 使用enumerate获取表格序号(从1开始)和对应的表格对象
for tab_num, table in enumerate(tables, start=1):
    # 用table.page获取当前表格的页码,替换文件名中的占位符
    # 注意:路径中的反斜杠建议用原始字符串r""避免转义问题,或者改用正斜杠"/"
    table.to_csv(rf"2003\Report2003tab{tab_num}_page{table.page}.csv")

关键修改点:

  • 用enumerate(tables, start=1)遍历表格,tab_num从1开始计数,对应你原来的page+1;
  • 通过table.page直接获取该表格所在的PDF页码,无需手动关联;
  • 路径使用原始字符串rf"",避免反斜杠被Python解析为转义字符(比如\R会被识别为特殊字符),也可以将路径中的反斜杠改为正斜杠/,比如"2003/Report2003tab{...}.csv"。

内容的提问来源于stack exchange,提问作者abdullah Haidari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 05:15:30