如何在Telethon上下载媒体到指定路径



我正在编写telethon download_media和_download_document方法,用于从telegram下载媒体。我的代码是这样的:

from telethon import TelegramClient
api_id = 12345
api_hash = '0123456789abcdef0123456789abcdef'
client = TelegramClient('anon', api_id, api_hash)
async def main():
async for message in client.iter_messages('me'):
print(message.id, message.text)
# You can download media from messages, too!
# The method will return the path where the file was saved.
if message.photo:
path = await message.download_media()
print('File saved to', path)  # printed after download is done
with client:
client.loop.run_until_complete(main())

但此代码无法将媒体下载到特定路径,如何获取保存

的文件名

文档显示download_media方法接受名为file的参数,该参数为

输出文件路径、目录或类流对象。如果路径存在并且是一个文件,它将被覆盖。如果文件是类型字节,它将作为字节串下载到内存中(例如:文件=字节)。

我没有能力测试它,但是像替换

message.download_media()

message.download_media(file="path/to/downloads_dir")

您可以使用message.file.name获取文件名,这里是代码

from telethon import TelegramClient
api_id = 12345
api_hash = '0123456789abcdef0123456789abcdef'
client = TelegramClient('anon', api_id, api_hash)
async def main():
async for message in client.iter_messages('me'):
print(message.id, message.text)
if message.photo:
print('File Name :' + str(message.file.name))
path = await client.download_media(message.media, "youranypathhere")
print('File saved to', path)  # printed after download is done
with client:
client.loop.run_until_complete(main())

最新更新