Python file=open(ad,'wb')类型错误:应为str、bytes或os.PathLike对象,而不是NoneType

Python file=open(ad,'wb')类型错误:应为str、bytes或os.PathLike对象,而不是NoneType,python,pyrogram,Python,Pyrogram,我找不到错误,请帮忙 file=openad,“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

我找不到错误,请帮忙

file=openad,“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')

由于其他两个答复并没有真正解决问题,我将在这里插手

在这些方面:

ad=best.download file=openad,“wb” bot.send_documentmessage.chat.id,文件 file.close 您将best.download的结果分配给ad,您希望将其与Pyrogram一起发送。由于您在open上得到一个TypeError,很明显open没有得到它期望的类型,即NoneType。您必须确保下载了某些内容,并且该方法返回一个您可以使用的值

在尝试打开之前,也许可以尝试穴居人方法并使用printad

除此之外:Pyrogram不支持发送打开的文件表示。您可以以字节模式打开文件,读取字节并将其与BytesIO一起使用,但当您的系统上有实际文件时,您可以使用文件路径:app.send_documentchat_id,my_file.webm


请参阅文档。

尝试将广告替换为adits,只需创建一个新的文本文件。从best.download返回的值指定给广告是非类型。确保下载和/或写入文件或返回所述文件。除此之外,您还试图发送open,这是您无法做到的。您需要指定一个文件的路径。文件C:\Users\HP\AppData\Roaming\Python\Python39\site packages\pyrogram\methods\advanced\save\u file.py,第125行,在save\u file提升值错误文件大小等于0 B值错误:文件大小等于0B@Yato您的文件已损坏或,您的文件在它的webm中没有数据file@Yato您的文件仅称为ad还是有一些扩展名?类似于*.mkv,仅适用于WebM文件。webm格式
file = open('ad', 'wb')