首页 > 解决方案 > 使用 python-pptx 替换 ppt 各方面的特定文本

问题描述

我是 python-pptx 的新手。但我熟悉它的基本工作。我进行了很多搜索,但找不到在所有幻灯片中用另一个文本更改特定文本的方法。该文本可能位于幻灯片的任何 text_frame 中。就像 ppt 中的所有幻灯片都有“java”关键字一样,我想在幻灯片中使用 python pptx 通过“python”来更改它。

for slide in ppt.slides:
    if slide.has_text_frame:
        #do something with text frames

标签: pythonpresentationpython-pptx

解决方案


这样的事情应该会有所帮助,您需要迭代shape每个对象slide.shapes并检查 TextFrame 和关键字是否存在:

def replace_text_by_keyword(ppt, keyword, replacement):
    for slide in ppt.slides:
        for shp in slide.shapes:
            if shp.has_text_frame and keyword in shp.text:
                thisText = shp.text.replace(keyword, replacement)
                shp.text = thisText

当然这个例子只是一个简单str.replace的例子,如果你有更复杂的替换/文本更新算法,你可以根据需要进行修改。


推荐阅读