最近在文字资料视频化的过程中,有一个制作ppt的需求,每一页写一个问题和一个答案,没有什么难度,但是呢,量比较大,传统方法就是把相应文字复制粘贴到指定位置,这是妥妥的重复性劳动,我就琢磨python能不能帮我实现文字的写入功能,版式什么的我自己来调整。最后实现了,把代码分享上来,看看能不能帮得到有需要的朋友,也能做个备份。
先看一下效果图吧!
from pptx import Presentation
import time
"""
首先创建一个pptx格式的文件,设计好母版,然后把文本信息对应占位符进行写入即可
"""
start = time.time()
pptx = Presentation('D:\\Pycharm\\python办公\\模板.pptx')
with open('模块五选择题.txt', 'r', encoding='utf-8') as file1:
text = file1.read()
data = []
for c in text.split('\n'):
slide = pptx.slides.add_slide(pptx.slide_layouts[1])
slide.placeholders[0].text = c.split('$')[0]
slide.placeholders[1].text = c.split('$')[1]
# slide.placeholders[2].text = '2'
with open('模块五简答题.txt', 'r', encoding='utf-8') as file2:
text = file2.read()
data = []
for c in text.split('\n'):
slide = pptx.slides.add_slide(pptx.slide_layouts[2])
slide.placeholders[0].text = c.split('$')[0]
slide.placeholders[1].text = c.split('$')[1]
pptx.save('D:\\Pycharm\\python办公\\new7.pptx')
end = time.time()
print('信息写入完成,耗时{:.2f}秒'.format(end-start))
# for shape in slide.placeholders:
# shape.text = str(shape.placeholder_format.idx)
实现难度不大,就是获取版式的序号和文本框填入的内容,我这里用到的文档格式是txt的,然后问题与答案之间用分隔符‘$’隔开,末尾用换行符,看图。
最后把本文所用到的所有文件打包,拿到代码后可直接使用,稍微调试一下就能实现自己的功能了
效果视频
python自动操作ppt)[1]