如何解决如何将媒体下载到 Telethon 上的特定路径
我正在研究用于从电报下载媒体的 Telethon download_media 和 _download_document 方法。我的代码是这样的:
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())
但是此代码无法将媒体下载到特定路径, 以及如何获取已保存文件的名称
解决方法
Docs of telethon 表明 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())
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。