Ошибка img2pdf pyhon

задача стоит такая, есть файлы типа 1.ipg, 2.ipg, rtrrt.jpg, ghthh.jpg Соединение файлов должно быть обязательно 1.ipg, 2.ipg,остальные не важно. Который ниже работает, но на некоторых выдает ошибку

import img2pdf
import glob
import os

dir = os.path.abspath(os.curdir)
print(dir)
dir_new = dir.split('\\')[-1]
print(dir_new)

with open(dir_new +".pdf", "wb") as f:
     f.write(img2pdf.convert(glob.glob("*.jpg")),  rotation=img2pdf.Rotation.ifvalid)

Код ошибки:

Traceback (most recent call last):
  File "C:/pyserver/1.py", line 13, in <module>
    f.write(img2pdf.convert(glob.glob("*.jpg")),  rotation=img2pdf.Rotation.ifvalid)
TypeError: write() takes no keyword arguments

Ответы (2 шт):

Автор решения: Andrei Popruha

В коде происходит ошибка, потому что метод write() не принимает именованные аргументы, такие как rotation.

Чтобы устранить ошибку, можно преобразовать в PDF до вызова write(), вот так:

with open(dir_new +".pdf", "wb") as f:
pdf_bytes = img2pdf.convert(glob.glob("*.jpg"), rotation=img2pdf.Rotation.ifvalid)
f.write(pdf_bytes)
→ Ссылка
Автор решения: insolor

Причина ошибки в том, что закрывающая скобка стоит не там:

# Должно быть
f.write(img2pdf.convert(glob.glob("*.jpg"), rotation=img2pdf.Rotation.ifvalid))
# Было
f.write(img2pdf.convert(glob.glob("*.jpg")),  rotation=img2pdf.Rotation.ifvalid)

Получается, что вы передаете параметр rotation (поворот) в метод write, а не в метод convert. Метод записи в файл ни о каком повороте не знает, он умеет только записывать байты в файл.

Чтобы не путаться со скобками, лучше разделить операцию на отдельные строки:

pdf_bytes = img2pdf.convert(glob.glob("*.jpg"), rotation=img2pdf.Rotation.ifvalid)
f.write(pdf_bytes)

или даже так:

files = glob.glob("*.jpg")
pdf_bytes = img2pdf.convert(files, rotation=img2pdf.Rotation.ifvalid)
f.write(pdf_bytes)
→ Ссылка