PPT自动化处理

python-pptx模块

  • 可以创建、修改PPT(.pptx)文件
  • 非Python标准模块,需要单独安装

在线安装方式 pip install python-pptx

读取slide幻灯片 .slides

获取shape形状 slide.shapes

判断一个shape中是否存在文字 shape.has_text_frame

获取文字框 shape.text_frame

使用Python向PPT中写入数据

添加幻灯片slide add_slide(prs.slide_layouts[0])

向占位符中添加内容 shape.text= 字符串

添加段落paragraph .add_paragraph()

设置层级关系 .level=级别

添加一个文本框 shide.shapes.add_textbox(left,top,width,height)

添加图片 slide.shapes.add_picture(图片路径,距离左边,距离顶端,宽度,高度)

添加表格 shapes.add_table(rows,cols,left,top,width,height)

使用Python设置PPT中的样式

设置文本框样式

  • .margin_bottom
  • .margin_left
  • .vertical_anchor
  • .word_wrap

设置文本框的背景颜色样式

  • .solid()
  • .fore_color.rgb

设置边框样式

  • .color
  • .width

与word中使用相似的样式

|--------|---------------|---------|
| 序号 | 样式 | 描述 |
| 1 | .add_run() | 添加新的文字块 |
| 2 | .level | 段落缩进层级 |
| 3 | .line_spacing | 段落行间距 |
| 4 | .runs | 段落内的文字块 |
| 5 | .space_after | 段后间距 |
| 6 | .space_before | 段前间距 |

设置字体样式

|--------|--------------|--------|
| 序号 | 样式 | 描述 |
| 1 | .font.name | 字体名称 |
| 2 | .font.bold | 是否加粗 |
| 3 | .font.italic | 是否斜体 |
| 4 | .font.color | 字体颜色 |
| 5 | .font.size | 字体大小 |

PDF自动化处理

pypdf2模块

  • 可以读取、写入、分割、合并PDF文件
  • 非Python标准模块,需要单独安装

pdfplumber模块

  • 可以更好地读取PDF文件内容
  • 可以提取PDF中的表格
  • 非Python标准模块,需要单独安装

pip install pypdf2

pip install pdfplumber

打开PDF文件 pdfplumber.open(filename)

获取指定索引页的PDF .pages[index]

提取文本 .extract_text()

提取表格 .extract_table()

提取多张表格口 .extract_tables()

使用Python操作PDF文档

  • 打开指定的PDF文件 PdfFileReader(filename)
  • 获取PDF文件的总页数 .getNumPages()
  • 创建PDF文件 PdfFileWriter()
  • 添加page页 .addPage()
  • 写入内容 .write()

加密PDF文件 pdf_write.encrypt(密码)

解密PDF文件 pdf_reader.decrypt(密码)

邮件自动化处理

yagmail模块

  • 用于发送邮件

keyring模块

  • 可以将密码隐藏
  • 方便 、安全地储存密码

imbox模块

  • 简易的Python IMAP包
  • 进行IMAP相关操作

开启QQ邮箱的SMTP功能

发送一封简单邮件

  • yagmail.SMTP(usre=用户名,host=SMTP服务器域名)
  • .send(接收方邮箱,主题,内容)

利用Python读取邮件

读取密码(授权码) keyring.get_password('yagmail',邮箱)

读取邮件内容 imbox(IMAP服务器地址,邮箱地址,密码,是否开启SSL加密)

|--------|-------------------------|--------|
| 序号 | 读取的内容 | 描述 |
| 1 | message.sent_from | 发件人 |
| 2 | message.sent_to | 收件人 |
| 3 | message.subject | 主题 |
| 4 | message.date | 时间 |
| 5 | message.body['plain'] | 文本格式 |
| 6 | message.body['html'] | HTML格式 |

相关推荐
laity177 分钟前
激活IDM的几种方法
python
宇钶宇夕18 分钟前
电路图识图基础知识-电机顺序启动控制电路解析(二十二)
运维·自动化
gsls20080821 分钟前
使用xdocreport导出word
前端·python·word
Johny_Zhao1 小时前
基于CentOS Stream 8的物联网数据采集与展示方案
linux·网络·python·mqtt·mysql·网络安全·信息安全·云计算·shell·yum源·系统运维
这里有鱼汤1 小时前
想成为下一个吉姆·西蒙斯,这十种经典K线形态你一定要记住
后端·python
Scoful2 小时前
快速用 uv 模拟发布一个 Python 依赖包到 TestPyPI 上,以及常用命令
开发语言·python·uv
xyl8662 小时前
Python 包管理器 uv 介绍
python·uv
databook2 小时前
规则学习:让机器学习像人类一样思考的可解释之路
python·机器学习·scikit-learn
cylat2 小时前
Day23 pipeline管道
人工智能·python·算法·机器学习
蓝桉~MLGT3 小时前
java高级——高阶函数、如何定义一个函数式接口类似stream流的filter
java·开发语言·python