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 相关文章推荐
在服务器端实现无间断部署Python应用的教程
Apr 16 Python
讲解Python中运算符使用时的优先级
May 14 Python
Python实现新浪博客备份的方法
Apr 27 Python
浅析使用Python操作文件
Jul 31 Python
Python实现读取邮箱中的邮件功能示例【含文本及附件】
Aug 05 Python
Python实现确认字符串是否包含指定字符串的实例
May 02 Python
Python实现的调用C语言函数功能简单实例
Mar 13 Python
PyTorch的深度学习入门教程之构建神经网络
Jun 27 Python
对pytorch的函数中的group参数的作用介绍
Feb 18 Python
python模拟点击网页按钮实现方法
Feb 25 Python
Python类的绑定方法和非绑定方法实例解析
Mar 04 Python
Python图片检索之以图搜图
May 31 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
PHP调用MySQL的存储过程的实现代码
2008/08/12 PHP
PHP关联数组的10个操作技巧
2013/01/21 PHP
PHP递归调用的小技巧讲解
2013/02/19 PHP
linux实现php定时执行cron任务详解
2013/12/24 PHP
PHP日期函数date格式化UNIX时间的方法
2015/03/19 PHP
百度 popup.js 完美修正版非常的不错 脚本之家推荐
2009/04/17 Javascript
解析John Resig Simple JavaScript Inheritance代码
2012/12/03 Javascript
推荐9款炫酷的基于jquery的页面特效
2014/12/07 Javascript
javascript实现设置、获取和删除Cookie的方法
2015/06/01 Javascript
JS实现随页面滚动显示/隐藏窗口固定位置元素
2016/02/26 Javascript
AngularJS  自定义指令详解及实例代码
2016/09/14 Javascript
js学习之----深入理解闭包
2016/11/21 Javascript
vue.js实现带日期星期的数字时钟功能示例
2018/08/28 Javascript
JS数组进阶示例【数组的几种函数用法】
2020/01/16 Javascript
简单理解Python中基于生成器的状态机
2015/04/13 Python
使用Python生成url短链接的方法
2015/05/04 Python
python好玩的项目—色情图片识别代码分享
2017/11/07 Python
Python 编程速成(推荐)
2019/04/15 Python
Python3 itchat实现微信定时发送群消息的实例代码
2019/07/12 Python
简单了解python反射机制的一些知识
2019/07/13 Python
TensorFlow MNIST手写数据集的实现方法
2020/02/05 Python
Python 解析pymysql模块操作数据库的方法
2020/02/18 Python
基于python 凸包问题的解决
2020/04/16 Python
Django-migrate报错问题解决方案
2020/04/21 Python
Python matplotlib图例放在外侧保存时显示不完整问题解决
2020/07/28 Python
Python连接Impala实现步骤解析
2020/08/04 Python
Python生成pdf目录书签的实例方法
2020/10/29 Python
.NET初级开发工程师面试题
2014/04/18 面试题
现代化办公人员工作的自我评价
2013/10/16 职场文书
生物科学专业个人求职信范文
2013/12/07 职场文书
标准大学生职业生涯规划书写作指南
2014/09/18 职场文书
党员干部学习心得体会
2016/01/23 职场文书
《自己的花是让别人看的》教学反思
2016/02/19 职场文书
《藏戏》教学反思
2016/02/23 职场文书
Springboot如何使用logback实现多环境配置?
2021/06/16 Java/Android
详解CSS3.0(Cascading Style Sheet) 层叠级联样式表
2021/07/16 HTML / CSS