我想知道是否有一种方法可以从URL下载pdf文件并立即将其作为附件发送到不和谐变化。
urls = [f'https://documents.pse.com.ph/market_report/{monthf}%20{dayf},%20{year}-EOD.pdf']
for eodfiles in urls:
sendAttachement = requests.get(eodfiles)
if sendAttachement.status_code == 200:
#await ctx.send(file)
await ctx.send(url=discord.File(file, filename="EOD.pdf"))
else:
await ctx.send("No file available")
如文档所示,Context实现send()
方法如下:
send(content=None, *, tts=False, embed=None, file=None, files=None, delete_after=None, nonce=None, allowed_mentions=None, reference=None, mention_author=None)
注意file
参数。如果我们看一下它的描述,我们看到它确实做了你想做的事情,它接受一个文件类型的参数。如果您将下载的pdf管理为Discord.py的File格式,您可以将其发送(或者您可以将多个这样的文件放在一个列表中并使用files
参数发送)。
当你需要了解一个库的更多信息时,你应该首先查阅文档。
创建File对象的最小方法是传递一个文件指针(从open()
获取文件的东西)或文件名,如果您已经下载了pdf。所以你应该把requests.get(eodfiles)
的结果保存到文件名中然后你可以使用
file = discord.File("EOD.pdf")
# You only need to customise the `filename` parameter if you want the name to appear different
然后调用
await ctx.send(file=file)
关于如何保存通过requests
下载的文件的详细信息取决于requests
,你可以很容易地在他们的文档中研究,或者看到这个问题似乎解决了这个问题。