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中查看变量内存地址的方法
May 05 Python
详解Python设计模式编程中观察者模式与策略模式的运用
Mar 02 Python
python if not in 多条件判断代码
Sep 21 Python
python正则实现计算器功能
Dec 14 Python
Python爬虫通过替换http request header来欺骗浏览器实现登录功能
Jan 07 Python
python中正则表达式 re.findall 用法
Oct 23 Python
pygame游戏之旅 添加游戏介绍
Nov 20 Python
Python Flask 搭建微信小程序后台详解
May 06 Python
python scrapy重复执行实现代码详解
Dec 28 Python
Pycharm小白级简单使用教程
Jan 08 Python
python读取tif图片时保留其16bit的编码格式实例
Jan 13 Python
Pytorch 高效使用GPU的操作
Jun 27 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反弹shell实现代码
2009/04/22 PHP
PHP提交表单失败后如何保留已经填写的信息
2014/06/20 PHP
round robin权重轮循算法php实现代码
2016/05/28 PHP
PHP CURL使用详解
2019/03/21 PHP
JS实现浏览器菜单命令
2006/09/05 Javascript
JS编程小常识很有用
2012/11/26 Javascript
使用非html5实现js板连连看游戏示例代码
2013/09/22 Javascript
javascript抖动元素的小例子
2013/10/28 Javascript
js中一个函数获取另一个函数返回值问题探讨
2013/11/21 Javascript
RequireJS入门一之实现第一个例子
2015/09/30 Javascript
Bootstrap教程JS插件弹出框学习笔记分享
2016/05/17 Javascript
微信小程序 开发之滑块视图容器(swiper)详解及实例代码
2017/02/22 Javascript
js图片加载效果实例代码(延迟加载+瀑布流加载)
2017/05/12 Javascript
input type=file 选择图片并且实现预览效果的实例
2017/10/26 Javascript
浅谈React高阶组件
2018/03/28 Javascript
JS实现选项卡效果的代码实例
2019/05/20 Javascript
详解JWT token心得与使用实例
2019/08/02 Javascript
详解vue中v-bind:style效果的自定义指令
2020/01/21 Javascript
js实现炫酷光感效果
2020/09/05 Javascript
[54:33]2018DOTA2亚洲邀请赛小组赛 A组加赛 Liquid vs Optic
2018/04/03 DOTA
Python生成器以及应用实例解析
2018/02/08 Python
PyCharm-错误-找不到指定文件python.exe的解决方法
2019/07/01 Python
Python range与enumerate函数区别解析
2020/02/28 Python
最简单的matplotlib安装教程(小白)
2020/07/28 Python
详解Anaconda 的安装教程
2020/09/23 Python
采用专利算法搜索最廉价的机票:CheapAir
2016/09/10 全球购物
Expedia法国:全球最大在线旅游公司
2018/09/30 全球购物
Myprotein俄罗斯官网:欧洲第一运动营养品牌
2019/05/05 全球购物
组织鉴定材料
2014/06/02 职场文书
个人授权委托书模板
2014/09/14 职场文书
2014国庆节餐厅促销活动策划方案
2014/09/16 职场文书
李白故里导游词
2015/02/12 职场文书
python文件目录操作之os模块
2021/05/08 Python
springboot应用服务启动事件的监听实现
2022/04/06 Java/Android
Win11跳过联网界面创建本地管理账户的3种方法
2022/04/20 数码科技
大脑的记忆过程在做数据压缩,不同图形也有共同的记忆格式
2022/04/29 数码科技