Как создать PDF из загруженных фотографий (Python) - PullRequest
0 голосов
/ 23 ноября 2018

** Я хочу создать PDF после загрузки фотографий, это не сохранить файл PDF.Где есть ошибка?**

from fpdf import FPDF
import random
import urllib.request


for i in range(1,10):
 def image(url):
  name=random.randrange(1,80)
  fullname=str(name)+"."+"jpg"
  a=urllib.request.urlretrieve(url,'/Users/Dato/Desktop/python/photo/{}.jpg'.format(name))
  image("https://img.yumpu.com/54761731/{}/950x950/7uhbctpd0.jpg".format(random.randrange(1, 80)))

  pdf = FPDF()
  pdf.add_page()
  pdf.image('{}'.format(a), x=0, y=0)
  pdf.output("1.pdf",)

Ответы [ 2 ]

0 голосов
/ 23 ноября 2018

С помощью оператора def вы определяете функцию.Это просто сборка структуры того, что должен делать этот конкретный фрагмент кода.На самом деле он не выполняется.

С def внутри цикла for вы снова и снова строите struture, но фактически никогда не выполняете этот фрагмент кода.

Есливы бы настаивали на использовании функций, вы можете определить функцию вне цикла (один раз), а затем вызвать ее, используя function_name() внутри цикла for.

Или вы можете исключить использование функцииaltogehter, и просто удалите часть def nside цикла, и позвольте инструкциям быть выполненными напрямую.

У меня был очень похожий проект, который использовал похожие концепции PDF.Если какая-то проблема все еще существует, я надеюсь, она поможет вам в дальнейшем: GitHub Link .

0 голосов
/ 23 ноября 2018

Ваш код мало что делает.Вот что происходит, когда ваш код выполняется:

from fpdf import FPDF
import random
import urllib.request


for i in range(1,10):

Здесь вы импортируете свои пакеты, а затем запускаете цикл for.Код в цикле будет выполняться один раз для каждого цикла и будет иметь доступ к переменной i, которая будет меняться при каждом запуске цикла.

def image(url):
    ...

Остальная часть кода состоит из определения функциивнутри for петли.Определенную вами функцию можно назвать image("example.com"), но вы никогда этого не сделаете.Таким образом, цикл for запускается и определяет функцию много раз, но никогда не вызывает ее.Функция никогда не запускается.

Редактировать: чтобы фактически запустить код, вы можете просто удалить определение функции и указать URL-адреса напрямую.Код запустился бы, если бы его не было в определении функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...