#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)
Также убедитесь, что количество изображений и файлов в списках одинаковое.