Форум сайта python.su
0
Уважаемые эксперты.
Прошу подсказать! Цель собрать *.jpg файлы в один *.pdf файл.
Программа выдает ошибку, пишет что требуется байтовый объект, а не стринговый.
Ниже я прикрепил два варианта программы. Ошибка одна и таже. Я пробовал использовать и ‘wb’,
и переводить в байты. Одно и тоже. Visual Code пишет ошибка в строке ( f.write(img2pdf.convert()) или во втором примере в convert=img2pdf.convert(JpgFile))
Как правильно сделать запись, что бы работало. Да файл *.pdf при этом создается, но нулевого размера.
import os, img2pdf, sys with open(f'//Server/testJPG.pdf', 'w') as f: f.write(img2pdf.convert([i for i in os.listdir('//Server/') if i.endswith('.JPG')])) filewrite=os.open('img.pdf', 'w') filewrite.write(f) filewrite.close()[/b] for JpgFile in os.listdir('//Server/'): if JpgFile.endswith('.JPG'): convert=img2pdf.convert(JpgFile) print(JpgFile) file=open('//Server/АгрегатнаяРТС.pdf', 'w') file.write(convert, 'wb') file.close()
Отредактировано FishHook (Сен. 3, 2020 17:23:08)
Прикреплённый файлы:
JPGtoPDF.py (487 байт)
Офлайн
857
Там как минимум надо везде wb поставить вместо w. Не факт, что это поможет. А лучше всего выводить на экран содержимое того, что ты писать собираешься. Там ты можешь увидеть, что пишется совсем не то, что ты ожидаешь.
Так что для начала посмотри, что возвращает img2pdf.convert(), просто выводя это на экран.
Офлайн