如何解决file = open(ad, 'wb') TypeError: 预期的 str、bytes 或 os.PathLike 对象,而不是 NoneType
@bot.on_message(filters.command('song'))
def songs(_,message):
msg = message.text.replace(message.text.split(' ')[0],'')
videosSearch = VideosSearch(msg,limit = 1)
f = videosSearch.result()
nani = f['result']
for link in nani:
url = link['link']
video = pafy.new(url)
audiostreams = video.audiostreams
best = video.getbestaudio()
ad = best.download()
file = open(ad,'wb')
bot.send_document(message.chat.id,file)
file.close()
我找不到错误请帮忙
file = open(ad,'wb') 类型错误:预期的 str、bytes 或 os.pathLike 对象,而不是 nonetype
解决方法
由于其他两个回复并没有真正解决手头的问题,我将在这里插话。
在这些行上:
ad = best.download()
file = open(ad,'wb')
bot.send_document(message.chat.id,file)
file.close()
您将 best.download()
的结果分配给 ad
,您希望将其与 Pyrogram 一起发送。由于您在 open()
上得到 TypeError,很明显 open()
没有得到它预期的类型,即 NoneType
。您必须确保下载了某些内容,并且该方法返回了一个您可以使用的值。
在尝试print(ad)
之前,不妨试试穴居人的方法并使用open()
。
除此之外:Pyrogram 不支持发送文件表示 (open()
)。您可以以字节模式打开文件,读取字节并将其与 BytesIO 一起使用,但是当您的系统上有实际文件时,您可以只使用文件的路径:app.send_document(chat_id,"my_file.webm")
。
请参阅 app.send_document()
的文档。
替换这个:
file = open(ad,'wb')
有了这个:
file = open('ad','wb')
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。