**我要在下载照片后创建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",)
答案 0 :(得分:0)
您的代码执行不了什么。代码运行时会发生以下情况:
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。如果不在函数定义中,则代码将运行。
答案 1 :(得分:0)
使用def
语句定义一个函数。它只是构建该特定代码段应执行的操作的结构。它实际上并没有执行它。
使用def
循环中的for
,您将一次又一次地构建结构,但从未真正执行过这段代码。
如果您坚持使用函数,则可以在循环外定义一次函数,然后在function_name()
循环内使用for
对其进行调用。
或者,您可以取消使用altogehter函数,只需删除循环旁的def部分,然后直接执行指令即可。
我有一个非常相似的项目方式,它使用了相似的pdf概念。如果仍然存在问题,希望它能为您提供进一步的指导:GitHub Link。