python pdfplumber库批量提取pdf表格数据转换为excel

yizhihongxing

我来为你详细讲解一下“Python pdfplumber库批量提取pdf表格数据转换为Excel”的完整攻略。

一、pdfplumber库简介

pdfplumber是一个用于提取PDF文本内容和元数据的Python库。它可以用于提取文本、表格和图像等元素。pdfplumber可以在Windows、macOS和Linux等操作系统上运行,并且可以与Python 2.7、3.4及以上版本兼容。

二、安装pdfplumber库

安装pdfplumber库可以使用pip命令,运行以下命令即可:

pip install pdfplumber

三、批量提取pdf表格数据转换为Excel

  1. 导入pdfplumber库和pandas库:

import pdfplumber
import pandas as pd

  1. 定义函数,用于将每个pdf文件中的表格数据提取出来,并存储为DataFrame格式:

def get_pdf_tables(file_path):
"""
:param file_path: pdf文件路径
:return: 所有表格的DataFrame列表
"""
with pdfplumber.open(file_path) as pdf:
tables = []
for page in pdf.pages:
for table in page.extract_tables():
df = pd.DataFrame(table[1:], columns=table[0])
tables.append(df)
return tables

  1. 定义主函数,用于批量处理pdf文件中的表格数据,将其转换为Excel文件:

def process_pdf_files(pdf_dir_path, excel_path):
"""
:param pdf_dir_path: 存放pdf文件的文件夹路径
:param excel_path: 生成的Excel文件路径
"""
tables = []
for file_name in os.listdir(pdf_dir_path):
if file_name.endswith('.pdf'):
file_path = os.path.join(pdf_dir_path, file_name)
tables += get_pdf_tables(file_path)
writer = pd.ExcelWriter(excel_path)
for i, table in enumerate(tables):
table.to_excel(writer, sheet_name='Sheet{}'.format(i+1))
writer.save()

  1. 运行主函数,传入pdf文件夹路径和生成的Excel文件路径:

pdf_dir_path = '/path/to/pdf/directory'
excel_path = '/path/to/excel/file.xlsx'
process_pdf_files(pdf_dir_path, excel_path)

至此,我们完成了使用pdfplumber库批量提取pdf文件中的表格数据,然后将其转换为Excel文件的过程。

四、示例说明

下面是两个示例,帮助你更好地了解使用pdfplumber批量提取pdf表格数据转换为Excel的攻略:

示例一

假设你要处理的pdf文件夹名为“pdf_files”,并且存放在当前Python文件所在的目录下。你想要将所有pdf文件中的第一个表格提取出来,然后将其保存为名为“table1.xlsx”的Excel文件。你可以按照以下步骤进行操作:

  1. 在Python文件中导入pdfplumber库和pandas库:

import pdfplumber
import pandas as pd

  1. 定义函数,用于将每个pdf文件中的表格数据提取出来,并返回第一个表格所对应的DataFrame:

def get_pdf_table(file_path):
"""
:param file_path: pdf文件路径
:return: 第一个表格的DataFrame
"""
with pdfplumber.open(file_path) as pdf:
table = pd.DataFrame()
for page in pdf.pages:
if page.extract_tables():
df = pd.DataFrame(page.extract_tables()[0][1:], columns=page.extract_tables()[0][0])
table = pd.concat([table, df], sort=False)
break
return table

  1. 定义主函数,用于批量处理pdf文件中的表格数据,将每个pdf文件中的第一个表格所对应的DataFrame保存为Excel文件:

def process_pdf_files(pdf_dir_path, excel_path):
"""
:param pdf_dir_path: 存放pdf文件的文件夹路径
:param excel_path: 生成的Excel文件路径
"""
tables = []
for file_name in os.listdir(pdf_dir_path):
if file_name.endswith('.pdf'):
file_path = os.path.join(pdf_dir_path, file_name)
table = get_pdf_table(file_path)
tables.append(table)
writer = pd.ExcelWriter(excel_path)
for i, table in enumerate(tables):
table.to_excel(writer, sheet_name='Sheet{}'.format(i+1))
writer.save()

  1. 运行主函数,传入pdf文件夹路径和生成的Excel文件路径:

pdf_dir_path = './pdf_files'
excel_path = './table1.xlsx'
process_pdf_files(pdf_dir_path, excel_path)

示例二

假设你要处理的pdf文件夹名为“pdf_files”,并且存放在当前Python文件所在的目录下。你想要将所有pdf文件中的所有表格提取出来,然后将其保存在名为“all_tables.xlsx”的Excel文件中。你可以按照以下步骤进行操作:

  1. 在Python文件中导入pdfplumber库和pandas库:

import pdfplumber
import pandas as pd

  1. 定义函数,用于将每个pdf文件中的表格数据提取出来,并返回所有表格所对应的DataFrame列表:

def get_pdf_tables(file_path):
"""
:param file_path: pdf文件路径
:return: 所有表格的DataFrame列表
"""
with pdfplumber.open(file_path) as pdf:
tables = []
for page in pdf.pages:
for table in page.extract_tables():
df = pd.DataFrame(table[1:], columns=table[0])
tables.append(df)
return tables

  1. 定义主函数,用于批量处理pdf文件中的表格数据,将每个pdf文件中的所有表格所对应的DataFrame保存为Excel文件:

def process_pdf_files(pdf_dir_path, excel_path):
"""
:param pdf_dir_path: 存放pdf文件的文件夹路径
:param excel_path: 生成的Excel文件路径
"""
tables = []
for file_name in os.listdir(pdf_dir_path):
if file_name.endswith('.pdf'):
file_path = os.path.join(pdf_dir_path, file_name)
tables += get_pdf_tables(file_path)
writer = pd.ExcelWriter(excel_path)
for i, table in enumerate(tables):
table.to_excel(writer, sheet_name='Sheet{}'.format(i+1))
writer.save()

  1. 运行主函数,传入pdf文件夹路径和生成的Excel文件路径:

pdf_dir_path = './pdf_files'
excel_path = './all_tables.xlsx'
process_pdf_files(pdf_dir_path, excel_path)

以上就是两个示例说明,希望对你有所帮助!

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python pdfplumber库批量提取pdf表格数据转换为excel - Python技术站

(0)
上一篇 2023年6月5日
下一篇 2023年6月5日

相关文章

  • 关于python列表增加元素的三种操作方法

    关于Python列表增加元素的三种操作方法分别是使用append()、extend()和insert()函数,下面我会详细阐述这三种方法的使用方式和应用场景。 一、使用append()函数 append()函数是Python列表自带的函数,用于在列表的末尾增加元素。其使用方式如下: my_list = [1, 2, 3] my_list.append(4) …

    python 2023年6月6日
    00
  • Python使用re模块正则提取字符串中括号内的内容示例

    以下是详细讲解“Python使用re模块正则提取字符串中括号内的内容示例”的完整攻略,包括正则表达式的基本语法、使用re模块匹配字符串中括号的内容的方法和两个示例说明。 正则表达式基本语法 正则表达式是一种用于匹配文本的模式。Python中,使用re模块来处理正则表达式。正则表达式的基本语法如下: 符号:匹配指定的字符。 集合:匹配指定的集。 量词:匹配指定…

    python 2023年5月14日
    00
  • Python 解决相对路径问题:”No such file or directory”

    Python解决相对路径问题:”No such file or directory”的完整攻略 在Python中,使用相对路径打开文件是非常常见的操作。但是,在使用相对路径打开文件时,有时会出现”No such file or directory”的错误。本文将详细讲解Python解决相对路径问题:”No such file or directory”的完整…

    python 2023年5月13日
    00
  • 使用Python的Twisted框架实现一个简单的服务器

    使用Python的Twisted框架实现一个简单的服务器是一个比较常见的场景,下面是几个步骤: 步骤一:安装Twisted框架 首先,需要安装Twisted框架。如果你的机器上已经有Python环境,可以通过以下命令安装: pip install twisted 如果你还没有安装Python,可以去Python官方网站下载对应版本的安装包。 步骤二:创建一个…

    python 2023年6月5日
    00
  • python实现商品进销存管理系统

    Python实现商品进销存管理系统攻略 系统需求分析 商品进销存管理系统主要涉及以下几个模块:- 商品信息维护- 进货管理- 销售管理- 库存管理 该系统需要能够实现如下功能:- 添加、修改、删除商品信息,包括商品名称、规格、单位、进价、售价等- 查看、修改进货单据,包括进货日期、商品名称、数量、单价等- 查看、修改销售单据,包括销售日期、商品名称、数量、单…

    python 2023年5月30日
    00
  • Python爬取网易云音乐上评论火爆的歌曲

    Python爬虫:网易云音乐评论爬取攻略 网易云音乐是一个非常受欢迎的音乐平台,用户可以在上面听歌、评论、分享等。在这种情况下,使用Python爬虫可以快速地获取网易云音乐上评论火爆的歌曲的评论信息。本攻略将介绍Python爬虫网易云音乐评论爬取攻略,包括数据获取、数据处理、数据存储和示例。 步骤1:获取数据 在Python中,我们可以使用requests库…

    python 2023年5月15日
    00
  • python tkinter库实现气泡屏保和锁屏

    下面是针对Python tkinter库实现气泡屏保和锁屏的完整攻略: 介绍 Python tkinter库是Python语言的标准GUI(图形用户界面)库,可以在Python程序中快速创建GUI应用程序。气泡屏保和锁屏作为常见的Windows桌面应用,也可以通过Python tkinter库实现。 实现气泡屏保 气泡屏保可以通过不断移动气泡的位置和颜色来营…

    python 2023年6月13日
    00
  • 详解Python如何生成优雅的二维码

    详解Python如何生成优雅的二维码 二维码已成为一种常用的信息传递方式,Python 作为一门高效的编程语言,能够为我们生成优雅的二维码。本攻略将详细讲解如何使用 Python 生成优雅的二维码。 准备工作 在使用 Python 生成二维码前,需要先安装 PyQRCode 模块。可以使用 pip 在终端或命令行中轻松安装: pip install PyQR…

    python 2023年6月6日
    00
合作推广
合作推广
分享本页
返回顶部