遍历功能参数以创建功率点演示

时间:2019-06-07 15:15:24

标签: python syntax parameter-passing user-defined-functions python-pptx

我正在尝试通过python-pptx定义函数以生成PowerPoint演示文稿。
我有自己的PowerPoint模板,每个幻灯片都需要嵌入多个图像。我使用*允许函数使用任意数量的参数。

例如,我有3个图(.png)。我想将每张图片放到不同的幻灯片中,这里说3。
我尝试的代码:

from pptx import Presentation
from pptx.util import Inches

def Create_PPT(oldFileName, newFileName, *img):
    prs = Presentation(oldFileName)
    # Create the slides for images
    for image in *img:
        graph_slide_layout = prs.slide_layouts[9]  # 9 is the customized template I create in my oldfile.
        slide = prs.slides.add_slide(graph_slide_layout)
        title = slide.shapes.title
        title.text = image
        left = Inches(0.7)
        top = Inches(0.75)
        height = Inches(6)
        width = Inches(12)
        pic = slide.shapes.add_picture(image, left, top, width = width, height = height)

    prs.save(newFileName)

Create_PPT('mystyle.pptx', 'new.pptx', 'test1.png', 'test2.png', 'test3.png')

我得到了错误:

for image in *img:
             ^
SyntaxError: invalid syntax    

此外,我认为我的代码不完整。要遍历并添加幻灯片,我想我还需要添加更多语法。

for index, _ in enumerate(prs.slide_layouts):
        slide = prs.slides.add_slide(prs.slide_layouts[index])

但是,这不正确。上面的代码循环遍历以创建不同的幻灯片布局。我的幻灯片布局是固定的,9在这里。
因此,我认为我需要遍历prs.slides.add_slide(),但是对此不确定,因为每次尝试都会出错。

输出将是3张幻灯片,每张幻灯片上都有图像,每张幻灯片的标题是图像的名称test1test2test3
有什么建议吗?

1 个答案:

答案 0 :(得分:1)

img是一个列表,我想您只是想对其进行遍历:

for image in img:
    ...