【问题标题】:How to create pdf from downloaded photos (python)如何从下载的照片创建 pdf (python)
【发布时间】:2018-11-23 16:57:33
【问题描述】:

**我想在下载照片后创建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",)

【问题讨论】:

  • 什么错误?如果您收到错误消息,请将其发布在您的问题中。
  • 不要写错了。我想如何保存这个pdf
  • 它只是写 Process finished with exit code 0

标签: python pdf download


【解决方案1】:

您的代码并没有做太多事情。以下是代码运行时发生的情况:

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。如果代码不在函数定义中,它将运行。

【讨论】:

  • 编辑了我的答案
【解决方案2】:

使用def 语句,您正在定义一个函数。它只是构建特定代码应该做什么的结构。它实际上并没有执行它。

for 循环中使用def,您正在一次又一次地构建结构,但从未真正执行过那段代码。

如果您坚持使用函数,您可以在循环外定义函数(一次),然后在 for 循环内使用 function_name() 调用它。

或者,你可以去掉altogehter函数的使用,直接去掉循环中的def部分,让指令直接执行。

我有一个非常相似的项目,它使用了类似的 pdf 概念。如果仍然存在一些问题,我希望它可以进一步指导您:GitHub Link

【讨论】:

    猜你喜欢
    • 2021-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多