Python 操作pdf pdfplumber读取PDF写入Exce


Posted in Python onAugust 14, 2022

1. Python 操作pdf(pdfplumber读取PDF写入Exce)

1.1 安装pdfplumber模块库

安装pdfplumber:

pip install pdfplumber

pdfplumber.PDF类

pdfplumber.PDF类表示单个PDF ,并具有两个主要属性:

属性 说明
pdf.metadata 从PDF的Info中获取元数据键/值对字典。通常包括"CreationDate,“ModDater","Producer"等
pdf.pages 返回一个包含pdfplumber. Page实例的列表,每一一个实例代表PDF每一页的信息

pdfplumber.Page类

pdfplumber.Page类常用属性

属性page_ number 说明
.page_ number 顺序页码,从1第一页开始,从第二页开始2 ,依此类推
.width 页面的宽度
.height 页面的高度
.objects/ . chars/ .lines/ .rects/ . curves/ .figures/ . images 这些属性中的每一个都是一 个列表, 每个列表包含一个字典 ,用于嵌入页面上的每个此类对象,有关详细信息,请参阅下面的“对象”。

常用方法:

方法名 说明
.extract_ text( ) 用来提页面中的文本,将页面的所有字符对象整理为的那个字符串
.extract_ words( ) 返回的是所有的单词及其相关信息
. extract_ tables() 提取页面的表格
.to_ _image() 用于可视化调试时,返回Pagelmage类的一个实例
.close() 默认情况下, Page对象缓存其布局和对象信息,以避免重新处理它,
但是在解析大型PDF时,这些缓存的属性可能需要大量内存。您可以使用此方法刷新缓存并释放内存。

1.2 常用操作

PDF是Portable Document Format的缩写,这类文件通常使用.pdf作为其扩展名。在日常开发工作中,最容易遇到的就是从PDF中读取文本内容以及用已有的内容生成PDF文档这两个任务。

  • 1.读取pdf文档信息
  • 2.输出总页数
  • 3.读取第一页宽度、高度等信息
  • 4.读取文本第一页

加载pdf:

  • pdfplumber.open( "路径/文件名. pdf".pas sword="test "laparams={ "line_ _overlap'”0.7 })
  •  password : 要加载受密码保护的PDF ,请传递password关键字参数
  • laparams :要将布局分析参数设置为pdfminer. six的布局引擎,请传递laparams关键字参数

1.2.1 Python读取pdf文件案例

pdf文件如下:

Python 操作pdf pdfplumber读取PDF写入Exce

1.2.2 Python读取pdf文件代码

import pdfplumber

# 加载pdf
path = "C:/Users/Administrator/Desktop/test08/test11 - 多页.pdf"
with pdfplumber.open(path) as pdf:
    print(pdf)
    print(type(pdf))

    # 读取pdf文档信息
    print("pdf文档信息:", pdf.metadata)

    # 输出总页数
    print("pdf文档总页数:", len(pdf.pages))

    # 1.读取第一页宽度、高度等信息
    first_page = pdf.pages[0]  # pdfplumber.Page对象第一页
    # 查看页码
    print('pdf页码:', first_page.page_number)
    # 查看页宽
    print('pdf页宽:', first_page.width)
    # 查看页高
    print('pdf页高:', first_page.height)

    # 2.读取文本第一页
    first_page = pdf.pages[0]  # pdfplumber.Page对象第一页
    text = first_page.extract_text()
    print(text)

执行结果:

"D:\Program Files1\Python\python.exe" D:/Pycharm-work/pythonTest/打卡/0811读取pdf.py
<pdfplumber.pdf.PDF object at 0x0000000002846278>
<class 'pdfplumber.pdf.PDF'>
pdf文档信息: {'Author': '', 'Comments': '', 'Company': '', 'CreationDate': "D:20220812102327+02'23'", 'Creator': 'WPS 表格', 'Keywords': '', 'ModDate': "D:20220812102327+02'23'", 'Producer': '', 'SourceModified': "D:20220812102327+02'23'", 'Subject': '', 'Title': '', 'Trapped': 'False'}
pdf文档总页数: 2
pdf页码: 1
pdf页宽: 595.25
pdf页高: 841.85
姓名 年龄 性别 地址 学习技能
张三 20 女 北京 python
李四 25 男 深圳 java
赵五 28 男 上海 C++
孙六 23 女 广州 python
钱七 27 男 珠海 python
张101 20 女 北京 python
.......
.......
张150 27 男 珠海 python
张151 20 女 北京 python
张152 25 男 深圳 java

Process finished with exit code 0

1.2.3 Python读取pdf文件存入Excel代码

import pdfplumber
import xlwt

# 加载pdf
path = "C:/Users/Administrator/Desktop/test08/test11 - 多页.pdf"
with pdfplumber.open(path) as pdf:
    page_1 = pdf.pages[0]  # pdf第一页
    table_1 = page_1.extract_table()  # 读取表格数据
    print(table_1)
    # 1.创建Excel对象
    workbook = xlwt.Workbook(encoding='utf8')
    # 2.新建sheet表
    worksheet = workbook.add_sheet('Sheet1')
    # 3.自定义列名
    clo1 = table_1[0]
    # 4.将列表元组clo1写入sheet表单中的第一行
    for i in range(0, len(clo1)):
        worksheet.write(0, i, clo1[i])
    # 5.将数据写进sheet表单中
    for i in range(0, len(table_1[1:])):
        data = table_1[1:][i]
        for j in range(0, len(clo1)):
            worksheet.write(i + 1, j, data[j])
    # 保存Excel文件分两种
    workbook.save('test88.xls')

执行结果:

Python 操作pdf pdfplumber读取PDF写入Exce

到此这篇关于Python 操作pdf pdfplumber读取PDF写入Exce的文章就介绍到这了,更多相关Python 操作pdf内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
flask中使用SQLAlchemy进行辅助开发的代码
Feb 10 Python
对Python新手编程过程中如何规避一些常见问题的建议
Apr 01 Python
Python删除windows垃圾文件的方法
Jul 14 Python
人机交互程序 python实现人机对话
Nov 14 Python
详解如何利用Cython为Python代码加速
Jan 27 Python
python抓取网页中链接的静态图片
Jan 29 Python
在pycharm中使用git版本管理以及同步github的方法
Jan 16 Python
对python函数签名的方法详解
Jan 22 Python
python 求一个列表中所有元素的乘积实例
Jun 11 Python
在pytorch中动态调整优化器的学习率方式
Jun 24 Python
python实现企业微信定时发送文本消息的示例代码
Nov 24 Python
Python合并多张图片成PDF
Jun 09 Python
Python使用plt.boxplot()函数绘制箱图、常用方法以及含义详解
Aug 14 #Python
基于Python实现nc批量转tif格式
Aug 14 #Python
LyScript实现绕过反调试保护的示例详解
Aug 14 #Python
LeetCode189轮转数组python示例
Aug 05 #Python
python语言中pandas字符串分割str.split()函数
Aug 05 #Python
python绘制云雨图raincloud plot
Aug 05 #Python
python计算列表元素与乘积详情
Aug 05 #Python
You might like
jQuery+php实现ajax文件即时上传的详解
2013/06/17 PHP
php cli配置文件问题分析
2015/10/15 PHP
php防止CC攻击代码 php防止网页频繁刷新
2015/12/21 PHP
PHP操作mysql数据库分表的方法
2016/06/09 PHP
php执行多个存储过程的方法【基于thinkPHP】
2016/11/08 PHP
javascript 极速 隐藏/显示万行表格列只需 60毫秒
2009/03/28 Javascript
js取得html iframe中的元素和变量值
2014/06/30 Javascript
jQuery 中$(this).index与$.each的使用指南
2014/11/20 Javascript
js获取域名的方法
2015/01/27 Javascript
JS iFrame加载慢怎么解决
2016/05/13 Javascript
jquery实现全选、不选、反选的两种方法
2016/09/06 Javascript
基于jQuery制作小图标上下滑动特效
2017/01/18 Javascript
Bootstrap多级菜单的实现代码
2017/05/23 Javascript
JavaScript实现移动端页面按手机屏幕分辨率自动缩放的最强代码
2017/08/18 Javascript
基于Bootstrap table组件实现多层表头的实例代码
2017/09/07 Javascript
bootstrap select2插件用ajax来获取和显示数据的实例
2018/08/09 Javascript
JS常见构造模式实例对比分析
2018/08/27 Javascript
Nodejs核心模块之net和http的使用详解
2019/04/02 NodeJs
vue实现图片上传功能
2020/05/28 Javascript
easyUI使用分页过滤器对数据进行分页操作实例分析
2020/06/01 Javascript
微信小程序实现多选框功能的实例代码
2020/06/24 Javascript
[01:03:41]DOTA2-DPC中国联赛 正赛 Dynasty vs XG BO3 第三场 2月2日
2021/03/11 DOTA
Python中的作用域规则详解
2015/01/30 Python
pandas读取csv文件,分隔符参数sep的实例
2018/12/12 Python
python通过tcp发送xml报文的方法
2018/12/28 Python
python 实现将list转成字符串,中间用空格隔开
2019/12/25 Python
将不规则的Python多维数组拉平到一维的方法实现
2021/01/11 Python
体育专业个人的求职信范文
2013/09/21 职场文书
建筑项目策划书
2014/01/13 职场文书
《水上飞机》教学反思
2014/04/10 职场文书
创先争优个人总结
2015/03/04 职场文书
文化苦旅读书笔记
2015/06/29 职场文书
大学生暑期实践报告
2015/07/13 职场文书
公司业务员管理制度
2015/08/05 职场文书
2016年春季运动会通讯稿
2015/11/25 职场文书
2016年教师节慰问信
2015/12/01 职场文书