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 sqlobject(mysql)中文乱码解决方法
Nov 14 Python
python检测空间储存剩余大小和指定文件夹内存占用的实例
Jun 11 Python
详解python3安装pillow后报错没有pillow模块以及没有PIL模块问题解决
Apr 17 Python
pyqt5 lineEdit设置密码隐藏,删除lineEdit已输入的内容等属性方法
Jun 24 Python
Python 下载及安装详细步骤
Nov 04 Python
pytorch实现特殊的Module--Sqeuential三种写法
Jan 15 Python
python GUI库图形界面开发之PyQt5滑块条控件QSlider详细使用方法与实例
Feb 28 Python
在pycharm中使用matplotlib.pyplot 绘图时报错的解决
Jun 01 Python
利用Python中的Xpath实现一个在线汇率转换器
Sep 09 Python
python 实现控制鼠标键盘
Nov 27 Python
浅谈Python中的函数(def)及参数传递操作
May 25 Python
详解PyTorch模型保存与加载
Apr 28 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
蝙蝠侠:侠影之谜
2020/03/04 欧美动漫
ajax缓存问题解决途径
2006/12/06 PHP
php5新改动之短标记启用方法
2008/09/11 PHP
ThinkPHP空模块和空操作详解
2014/06/30 PHP
php使用number_format函数截取小数的方法分析
2016/05/27 PHP
PHP图片添加水印功能示例小结
2016/10/03 PHP
javascript下高性能字符串连接StringBuffer类
2010/08/16 Javascript
JavaScript获取和设置CheckBox状态的简单方法
2013/07/05 Javascript
jquery批量控制form禁用的代码
2013/08/06 Javascript
js跨浏览器实现将字符串转化为xml对象的方法
2013/09/25 Javascript
js实现简单登录功能的实例代码
2013/11/09 Javascript
js由下向上不断上升冒气泡效果实例
2015/05/07 Javascript
JavaScript中的fontsize()方法使用详解
2015/06/08 Javascript
JS实现常见的TAB、弹出层效果(TAB标签,斑马线,遮罩层等)
2015/10/08 Javascript
jQuery绑定事件方法及区别(bind,click,on,live,one)
2017/08/14 jQuery
swiper在angularjs中使用循环轮播失效的解决方法
2018/09/27 Javascript
js的Object.assign用法示例分析
2020/03/05 Javascript
云服务器部署Node.js项目的方法步骤(小白系列)
2020/03/23 Javascript
[01:13]2015国际邀请赛线下观战现场
2015/08/08 DOTA
Python制作简易注册登录系统
2016/12/15 Python
Python模拟鼠标点击实现方法(将通过实例自动化模拟在360浏览器中自动搜索python)
2017/08/23 Python
轻量级的Web框架Flask 中模块化应用的实现
2017/09/11 Python
python机器学习理论与实战(一)K近邻法
2021/01/28 Python
pytorch实现特殊的Module--Sqeuential三种写法
2020/01/15 Python
Pycharm中Python环境配置常见问题解析
2020/01/16 Python
python shapely.geometry.polygon任意两个四边形的IOU计算实例
2020/04/12 Python
Django form表单与请求的生命周期步骤详解
2020/06/07 Python
python图片验证码识别最新模块muggle_ocr的示例代码
2020/07/03 Python
美国乡村商店:Plow & Hearth
2016/09/12 全球购物
阿联酋航空官方网站:Emirates
2017/10/17 全球购物
男女钓鱼靴和甲板鞋:XTRATUF
2021/01/09 全球购物
函授自我鉴定范文
2014/02/06 职场文书
会计电算化学生个人的自我评价
2014/02/08 职场文书
Python数据清洗工具之Numpy的基本操作
2021/04/22 Python
浅谈Java父子类加载顺序
2021/08/04 Java/Android
Golang数据类型和相互转换
2022/04/12 Golang