Python использовать pptx для чтения файлов изображений в папке в слайде ppt - PullRequest
1 голос
/ 28 февраля 2020

Нужна помощь.

Я пишу код для получения имени файла из Списка и использую это имя для поиска в папке, чтобы найти изображения на слайде PowerPoint. Цель - добавить три изображения на один слайд. Итак, на каждом слайде будет 3 изображения и так далее ...

Допустим, скажем ...

  1. Слайд1: поместите имя файла изображения aaaa-1.jpg, aaaa-2. jpg, aaaa-3.jpg
  2. Slide2: Поместить имя файла изображения bbbb-1.jpg, bbbb-2.jpg, bbbb-3.jpg ... и так далее до конца данных в списке

Имя файла, которое хранится в списке, выглядит следующим образом ..list = ['aaaa-1.jpg', 'aaaa-2.jpg', 'aaaa-3.jpg', 'bbb-1 .jpg, bbbb-2.jpg ',' bbbb-3.jpg '...]

Я использую функцию для отправки имени файла в модуль создания pptx, но он не работает. После запуска этого кода они создают 3 изображения (с одним файлом) на одном слайде! Не могли бы вы, пожалуйста, сообщить.

Спасибо за все ответы от вашего парня.

Вот мой код

from pptx import Presentation
from pptx.util import Inches
import os


prs = Presentation()

prs.slide_height=Inches(9)
prs.slide_width=Inches(16)


def buildafm(f1,f2,f3): #pass f1, f2, f3 to function

    blank_slide_layout = prs.slide_layouts[6]
    slide = prs.slides.add_slide(blank_slide_layout)

    os.chdir(r"C:\Python38-32\faprojects\folders\hzt")

    left = top = Inches(1)
    height = Inches(3.5)
    width = Inches(3.5)
    pic = slide.shapes.add_picture(f1, left, top, width=width, height=height)

    left = Inches(5)
    top = Inches(1)
    height = Inches(3.5)
    width = Inches(3.5)
    pic = slide.shapes.add_picture(f2, left, top, width=width, height=height)

    left = Inches(9)
    top = Inches(1)
    height = Inches(3.5)
    width = Inches(5.5)
    pic = slide.shapes.add_picture(f3, left, top, width=width, height=height)



os.chdir(r"C:\Python38-32\faprojects\folders\hzt")
a = os.listdir(os.getcwd())

# Image files name in folder HZT
#a=['aaaaaaaaaaa.001.jpg','aaaaaaaaaaaa.002.jpg','bbbbbbbbbb.001.jpg','bbbbbbbbbb.002.jpg','cccccccccc.001.jpg','cccccccccc.002.jpg']

newList = [string[:10] for string in a]
print("here is new list",newList)
no_dupes = [x for n, x in enumerate(newList) if x not in newList[:n]]
print("here is new list",no_dupes)
print("Number of heads",len(no_dupes))

hd=no_dupes[0:1]
str1=""
hd=str1.join(hd)

print(hd)

res = list(filter(lambda x: hd in x, a)) 
print("file is",res)


'''f1 = res[0:1]
f2 = res[1:2]
f3 = res[2:3]'''

for t in res:
    print(t)
    #showdata(t)

    buildafm(t,t,t) #call function to create pptx


    prs.save('testbat.pptx')
    os.startfile("testbat.pptx")
...