在之前很长一段时间,从PDF文件中提取表格都是一个老大难的问题。无论你使用的是PyPDF2还是其他什么第三方库,提取出来的表格都会变成纯文本,难以二次利用。
但现在好消息来了,专业处理PDF的第三方库PyMuPDF
升级到了1.23.0,已经支持完美提取PDF中的表格了。还可以把表格转换为Pandas的DataFrame供你分析。
PyMuPDF
的使用非常简单,首先我们来安装:
pip install pymupdf pandas openpyxl
其中安装pandas
是为了能让它转成DataFrame,安装openpyxl
是为了能把结果导出为Excel。
我们来看一个测试的PDF文件,如下图所示:
其中表格在第5页,那么我们编写如下代码,读取第五页的表格:
代码语言:javascript复制import fitz
doc = fitz.open('example.pdf')
page = doc[4] # 下标从0开始,第五页对应4
tables = page.find_tables()
df = tables[0].to_pandas()
df.to_excel('table.xlsx', index=False)
读取第5页的表格,把它转换为DataFrame,然后输出为Excel文件。
生成的Excel文件如下图所示,表格中的所有信息都完整读取,连换行符都能正常保留:
当然你也可以不输出成Excel,而是直接在代码里面对DataFrame进行分析。
END