gpt4 book ai didi

python - 在 Telethon 中使用 Download_Media 时命名文件

转载 作者:行者123 更新时间:2023-12-05 05:39:09 25 4
gpt4 key购买 nike

我正在使用 Telethon 抓取在 Telegram channel 中收到的新图像。我的代码工作正常(它使用预设的命名约定抓取消息和下载文件)但我似乎无法为下载的图像设置我自己的文件名。当我添加 file_name 参数时,出现错误。

docs建议可以为下载的媒体设置名称,但出现以下错误。

我做错了什么?

代码:

@client.on(events.NewMessage(chats=chat_id))
async def newMessageListener(event):
new_message = event.message.message
print(new_message)
print()

file_name = "new_image.jpg"

if event.message.photo:
await event.download_media(new_message, file_name)
print("New image received")

with client:
client.run_until_disconnected()

回溯:

newMessageListener 上未处理的异常

Traceback (most recent call last):
File "C:\Users\AppData\Local\Programs\Python\Python37\lib\site-packages\telethon\client\updates.py", line 454, in _dispatch_update
await callback(event)
File "C:/Users/PycharmProjects/TamTelegram/ps_Scrapev1.py", line 27, in newMessageListener
await event.download_media(new_message, file_name)
File "C:\Users\AppData\Local\Programs\Python\Python37\lib\site-packages\telethon\tl\custom\message.py", line 837, in download_media
return await self._client.download_media(self, *args, **kwargs)
File "C:\Users\AppData\Local\Programs\Python\Python37\lib\site-packages\telethon\sync.py", line 34, in syncified
coro = method(*args, **kwargs)
TypeError: download_media() takes from 2 to 3 positional arguments but 4 were given

最佳答案

documentation 中所述,一个 NewMessage 事件可以被认为是一个普通的 Message,所以可以在它上面调用 download_media 方法,TelegramClient.download_media 的简写message 参数已经设置为事件的消息。这意味着如果您调用 event.download_media,唯一要传递的位置参数是保存数据的 file

您的代码应如下所示:

@client.on(events.NewMessage(chats=chat_id))
async def newMessageListener(event):
file_name = "new_image.jpg"

if event.photo:
# shorthand for client.download_media(event.message, file_name)
await event.download_media(file_name)
print("New image received")

with client:
client.run_until_disconnected()

关于python - 在 Telethon 中使用 Download_Media 时命名文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72768425/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com