当前位置: 首页 > news >正文

批量添加PPT备注

我一直都觉得,用python高效办公,是件没必要的事。。。
但直到最近写课做PPT,做了80多页PPT,要把每一页PPT的备注粘贴进去时
我觉得,有什么关系呢,一页一页粘
但是粘到5页,我感觉ctl+c\v频率有点儿高
隐隐担心,腱鞘炎会不会出现
而且,我还不止是做这一个PPT,以后还要做几个PPT,每次都要这么粘?
毫无疑问,复制粘贴的手指头,会僵硬,我将不再是那个和平经营里优秀的我自己
所以,还是搞个批量导入PPT备注的小工具吧~~

from pptx import Presentation
from docx import Document
"""
需要修改ppt_path和doc_path
"""
ppt_path = r'C:\Users\qwe\Desktop\AI课\MJ\直播第二周2+3\MJ直播_2_完整.pptx'
doc_path = r"C:\Users\qwe\Desktop\AI课\MJ\直播第二周2+3\2_直播讲稿.docx"
doc = Document(doc_path)
ppt = Presentation(ppt_path)
# 处理文本
paras = []
temp = ''
for i in doc.paragraphs:if len(i.text)==0:print(temp)paras.append(temp)temp = ''else:temp = temp + i.texttemp = temp+'\n'
paras.append(temp)# 判断页数与备注量是否对应
doc_lens = len(paras)
ppt_lens = len(ppt.slides)
if doc_lens!=ppt_lens:print(doc_lens)print(ppt_lens)print("文档注意:不要连续空两行、末尾和开头不要有空行")print("PPT注意:不要隐藏PPT")raise Exception("文档和ppt页数不匹配,请重新检查")for index in range(ppt_lens):# 获取每页PPT备注对象slide = ppt.slides[index]notes_slide = slide.notes_slidetext_frame = notes_slide.notes_text_frame# 获取对应备注内容para = paras[index]# 往PPT里写入备注text_frame.text = paranew_ppt_name = ppt_path.split('.')[0]+'_备注.pptx'
ppt.save(new_ppt_name)
print(f"ppt备注已添加完成,保存在:{new_ppt_name}")

相关文章:

  • HTTP四大参数类型及请求参数的方式和如何接收
  • Kubernetes 离线部署 Spinnaker
  • webSocket基于面向对象二次封装
  • C语言-字符串逆序
  • 芯片设计—低功耗isolation cell
  • householder进行矩阵QR分解
  • Anaconda深度学习环境配置命令参考
  • 人工智能对我们的生活影响有多大
  • 【Spring】SpringBoot的扩展点之ApplicationContextInitializer
  • python-冒泡排序
  • Golang基础-面向对象篇
  • 1.2.1 C语言结构体初始化方法总结
  • Nginx 开源版安装
  • 下一代ETL工具:微服务架构的全新数据集成平台
  • stm32定时器输入捕获模式
  • 《深入 React 技术栈》
  • Consul Config 使用Git做版本控制的实现
  • css的样式优先级
  • ES6--对象的扩展
  • If…else
  • iOS筛选菜单、分段选择器、导航栏、悬浮窗、转场动画、启动视频等源码
  • jquery cookie
  • js ES6 求数组的交集,并集,还有差集
  • JS变量作用域
  • MySQL的数据类型
  • Promise面试题,控制异步流程
  • zookeeper系列(七)实战分布式命名服务
  • 工作手记之html2canvas使用概述
  • 简单易用的leetcode开发测试工具(npm)
  • 模仿 Go Sort 排序接口实现的自定义排序
  • 前端路由实现-history
  • 深入体验bash on windows,在windows上搭建原生的linux开发环境,酷!
  • 小程序01:wepy框架整合iview webapp UI
  • 因为阿里,他们成了“杭漂”
  • MiKTeX could not find the script engine ‘perl.exe‘ which is required to execute ‘latexmk‘.
  • 如何用纯 CSS 创作一个货车 loader
  • 树莓派用上kodexplorer也能玩成私有网盘
  • ​LeetCode解法汇总2808. 使循环数组所有元素相等的最少秒数
  • # 安徽锐锋科技IDMS系统简介
  • #QT(TCP网络编程-服务端)
  • #我与Java虚拟机的故事#连载19:等我技术变强了,我会去看你的 ​
  • #我与虚拟机的故事#连载20:周志明虚拟机第 3 版:到底值不值得买?
  • (1)虚拟机的安装与使用,linux系统安装
  • (ibm)Java 语言的 XPath API
  • (pytorch进阶之路)扩散概率模型
  • (笔试题)合法字符串
  • (附源码)计算机毕业设计ssm高校《大学语文》课程作业在线管理系统
  • (十八)三元表达式和列表解析
  • (四)Android布局类型(线性布局LinearLayout)
  • (一)pytest自动化测试框架之生成测试报告(mac系统)
  • (转)EXC_BREAKPOINT僵尸错误
  • .equal()和==的区别 怎样判断字符串为空问题: Illegal invoke-super to void nio.file.AccessDeniedException
  • .net core 6 集成和使用 mongodb
  • .net core webapi 大文件上传到wwwroot文件夹
  • .NET Core 和 .NET Framework 中的 MEF2