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标准库内置函数complex介绍
Nov 25 Python
python获取android设备的GPS信息脚本分享
Mar 06 Python
Python图算法实例分析
Aug 13 Python
python常用函数详解
Sep 13 Python
Python实现多进程共享数据的方法分析
Dec 04 Python
Python实现求解一元二次方程的方法示例
Jun 20 Python
Django Python 获取请求头信息Content-Range的方法
Aug 06 Python
Python3.5 win10环境下导入kera/tensorflow报错的解决方法
Dec 19 Python
Python3 shutil(高级文件操作模块)实例用法总结
Feb 19 Python
为什么相对PHP黑python的更少
Jun 21 Python
详解Python 中的容器 collections
Aug 17 Python
python中time包实例详解
Feb 02 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
攻克CakePHP系列一 连接MySQL数据库
2008/10/22 PHP
PHP查询网站的PR值
2013/10/30 PHP
php验证是否是md5编码的简单代码
2014/04/01 PHP
php中ftp_chdir与ftp_cdup函数用法
2014/11/18 PHP
PHP执行linux命令常用函数汇总
2016/02/02 PHP
php版微信开发Token验证失败或请求URL超时问题的解决方法
2016/09/23 PHP
php的4种常用运行方式详解
2016/12/22 PHP
php字符串过滤strip_tags()函数用法实例分析
2019/06/24 PHP
Laravel5.1 框架控制器基础用法实例分析
2020/01/04 PHP
jQuery :nth-child前有无空格的区别分析
2011/07/11 Javascript
Jqgrid设置全选(选择)及获取选择行的值示例代码
2013/12/28 Javascript
js验证输入是否为手机号码或电话号码示例
2013/12/30 Javascript
JS组件Bootstrap导航条使用方法详解
2016/04/29 Javascript
AngularJS实现DOM元素的显示与隐藏功能
2016/11/22 Javascript
jQuery实现 上升、下降、删除、添加一行代码
2017/03/06 Javascript
手把手教你把nodejs部署到linux上跑出hello world
2017/06/19 NodeJs
QRCode.js:基于JQuery的生成二维码JS库的使用
2017/06/23 jQuery
详解Vue CLI 3.0脚手架如何mock数据
2018/11/23 Javascript
使用vuepress搭建静态博客的示例代码
2019/02/14 Javascript
适用于 Vue 的播放器组件Vue-Video-Player操作
2020/11/16 Javascript
Python基础练习之用户登录实现代码分享
2017/11/08 Python
Python实现的计算器功能示例
2018/04/26 Python
python3.6 tkinter实现屏保小程序
2019/07/30 Python
python 利用pyttsx3文字转语音过程详解
2019/09/25 Python
pycharm激活码有效到2020年11月底
2020/09/18 Python
tensorflow实现对张量数据的切片操作方式
2020/01/19 Python
Python描述符descriptor使用原理解析
2020/03/21 Python
Farah官方网站:男士服装及配件
2019/11/01 全球购物
简单说下OSPF的操作过程
2014/08/13 面试题
省委召开党的群众路线教育实践活动总结大会报告
2014/10/21 职场文书
2015年网络舆情工作总结
2015/07/24 职场文书
安全教育主题班会总结
2015/08/14 职场文书
php字符串倒叙
2021/04/01 PHP
浅谈mysql返回Boolean类型的几种情况
2021/06/04 MySQL
一次MySQL启动导致的事故实战记录
2021/09/15 MySQL
python flappy bird小游戏分步实现流程
2022/02/15 Python