Python вставляет изображения в docx одно за другим

#python #python-3.x #list #arraylist

#python #python-3.x #Список #arraylist

Вопрос:

У меня есть одна папка с документами docx и другая папка с изображениями png. Моя программа должна взять первое изображение и вставить в первый документ, затем она должна взять второе изображение и вставить во второй документ и т.д.

 os.chdir(r"C:UserskrupnOneDriveРаботаДЛЯ РПНCreateWordResult")
filenames = []
filenames.extend(os.listdir("."))
os.chdir (r"C:UserskrupnOneDriveDocumentsPicturesScreenshots")
pictures = glob.glob(r"C:UserskrupnOneDriveDocumentsPicturesScreenshots*.png")


os.chdir(r"C:UserskrupnOneDriveРаботаДЛЯ РПНCreateWordResult")
for file in filenames:
document = Document (file)
for x in range (0, len(pictures)):
    document.add_picture(pictures[x], width=Inches(10))
document.save (file)
  

Я написал код, но он вставляет ВСЕ изображения в каждый документ docx. У вас есть какие-нибудь идеи, как это исправить?

Ответ №1:

Используйте zip функцию для перебора двух списков одновременно:

 os.chdir(r"C:UserskrupnOneDriveРаботаДЛЯ РПНCreateWordResult")
for picture, file in zip(pictures, filenames):
    document = Document(file)
    document.add_picture(picture, width=Inches(10))
    document.save(file)
  

Также убедитесь, что количество изображений и файлов в списках одинаковое.