Проблема с Python: UserWarning: повторяющееся имяPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Проблема с Python: UserWarning: повторяющееся имя

Сообщение Anonymous »

Я пытаюсь изменить и заполнить шаблон pptx с помощью скрипта Python.
Для этого я использую две функции: generate_template и fill_in_doc.Когда я использую функции отдельно в двух разных запусках, они работают. Однако, когда я вызываю их один за другим, я получаю эту ошибку:
return self._open_to_write(zinfo, Force_zip64=force_zip64)
/usr/lib/python3 .10/zipfile.py:1528: Предупреждение пользователя: повторяющееся имя: 'ppt/slides/slide8.xml'
Вот мои функции:
def fill_in_doc(template,data):

for slide in template.slides:
for shape in slide.shapes:
if not shape.has_text_frame:
continue
for paragraph in shape.text_frame.paragraphs :
for run in paragraph.runs:
for cle,valeur in data.items():
if f"" in run.text:
run.text=data[cle]
print('sauvegarde en cours')
template.save(memodir / 'templates/offre_APS_finale.pptx')
< /code>
def generate_template(prs,data):
if data['modele_economique']=='Injection' and data['modele_financement']=='EPC':
delete_slide(prs,'TI')
delete_slide(prs,'TI_INJECTION')
delete_slide(prs,'TI_AUTOCONSOMMATION')
delete_slide(prs,'AUTOCONSOMMATION')
elif data['modele_economique']=='Injection' and data['modele_financement']=='Tier_investissement':
delete_slide(prs,'EPC')
delete_slide(prs,'EPC_INJECTION')
delete_slide(prs,'TI_AUTOCONSOMMATION')
delete_slide(prs,'AUTOCONSOMMATION')
elif data['modele_economique']=='Autoconsommation' and data['modele_financement']=='EPC':
delete_slide(prs,'EPC_INJECTION')
delete_slide(prs,'TI')
delete_slide(prs,'TI_INJECTION')
delete_slide(prs,'TI_AUTOCONSOMMATION')
else :
delete_slide(prs,'TI_INJECTION')
delete_slide(prs,'TI_AUTOCONSOMMATION')
delete_slide(prs,'EPC_INJECTION')
delete_slide(prs,'TI_INJECTION')
delete_slide(prs,'EPC')
< /code>
def delete_slide(prs, text_to_search):

slides_suppr = find_slides_by_text(prs, text_to_search)
xml_slides = prs.slides._sldIdLst
slides = list(xml_slides)

for slide_index in reversed(slides_suppr): problèmes de réindexation
print(f"Suppression de la diapositive : {slide_index}")
slide_element = slides[slide_index]
xml_slides.remove(slide_element) l'élément donné

template.save(memodir / 'static/offre_APS_test.pptx')
< /code>
def find_slides_by_text(prs, text_to_search):

slides = []

for idx, slide in enumerate(prs.slides):
for shape in slide.shapes:
if shape.has_text_frame:
if re.search(r'\b' + re.escape(text_to_search) + r'\b', shape.text, re.IGNORECASE):
slides.append(idx)
break
return slides
< /code>
I tried to put prints everywhere. The error occurs when saving the template after replacing the tags with their value.

Подробнее здесь: https://stackoverflow.com/questions/793 ... icate-name
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»