如何使用Python提取PDF表格及文本,并保存到Excel
大数据DT
共 4489字,需浏览 9分钟
·
2021-04-13 21:21
导读:介绍一个开源Python工具库——pdfplumber。
第一步:使用pdfplumber提取表格文本
# 导入pdfplumber
import pdfplumber
# 读取pdf文件,保存为pdf实例
pdf = pdfplumber.open("E:\\nba.pdf")
# 访问第二页
first_page = pdf.pages[1]
# 自动读取表格信息,返回列表
table = first_page.extract_table()
table
第二步:整理成dataframe格式,保存为excel
import pandas as pd
# 将列表转为df
table_df = pd.DataFrame(table_2[1:],columns=table_2[0])
# 保存excel
table_df.to_excel('test.xlsx')
table_df
01 pdfplumber简介
它是一个纯Python第三方库,适合Python 3.x版本 它用来查看PDF各类信息,能有效提取文本、表格 它不支持修改或生成PDF,也不支持对pdf扫描件的处理
02 pdfplumber安装和导入
pip install pdfplumber
import pdfplumber
....
03 pdfplumber简单使用
pdfplumber.PDF类
.metadata:获取PDF基础信息,返回字典 .pages:一个包含pdfplumber.Page实例的列表,每一个实例代表PDF每一页的信息。
pdfplumber.Page类
# 导入pdfplumber
import pdfplumber
# 读取pdf文件,返回pdfplumber.PDF类的实例
pdf = pdfplumber.open("e:\\nba2.pdf")
# 通过pdfplumber.PDF类的metadata属性获取pdf信息
pdf.metadata
# 通过pdfplumber.PDF类的metadata属性获取pdf页数
len(pdf.pages)
# 第一页pdfplumber.Page实例
first_page = pdf.pages[0]
# 查看页码
print('页码:',first_page.page_number)
# 查看页宽
print('页宽:'first_page.width)
# 查看页高
print('页高:'first_page.height)
# 读取文本
text = first_page.extract_text()
print(text)
import pandas as pd
# 第二页pdfplumber.Page实例
first_page = pdf.pages[1]
# 自动读取表格信息,返回列表
table = first_page.extract_tables()
# 将列表转为df
table_df = pd.DataFrame(table_2[1:],columns=table_2[0])
table_df
表格抽取参数设置
{
"vertical_strategy": "lines",
"horizontal_strategy": "lines",
"explicit_vertical_lines": [],
"explicit_horizontal_lines": [],
"snap_tolerance": 3,
"join_tolerance": 3,
"edge_min_length": 3,
"min_words_vertical": 3,
"min_words_horizontal": 1,
"keep_blank_chars": False,
"text_tolerance": 3,
"text_x_tolerance": None,
"text_y_tolerance": None,
"intersection_tolerance": 3,
"intersection_x_tolerance": None,
"intersection_y_tolerance": None,
}
04 pdfplumber的独特之处
评论