1

我安装了 pytube,版本 9.5.0。我需要在我的下载代码中包含错误处理,但是我得到了错误,而不是这个工作并传递给下一个视频:

    NameError: name 'pytube' is not defined

它指的是第41行:

    except pytube.exceptions.VideoUnavailable:

我的代码如下:

    while j < len(test_fold):
        if len(test_fold[j]) > 6:
            urls2 = url + test_fold[j]

            test_List.append(urls2)
            try:
                yt=YouTube(test_List[j])
            except pytube.exceptions.VideoUnavailable:
                print 'unavailable'
            except pytube.exceptions.RegexMatchError:
                print 'regex error'

            except pytube.exceptions.ExtractError:
                print 'extract error'   
                t=yt.streams.filter(progressive=True, subtype='mp4').all()



                t[0].download('/Volumes/LaCie/folder/test')

            j+=1

我尝试添加

    from pytube import exceptions

但这并没有消除错误。关于如何解决这个问题以便错误处理起作用的任何见解?

4

1 回答 1

1

from pytube import exceptions不会帮助你,因为你要求pytube.exceptions.VideoUnavailable. 前者的意思是“使exceptions模块可用”,而后者的意思是“在pytube模块内部,有一个名为 的模块,exceptions其中有一个名为的异常VideoUnavailable”。但是你从来没有pytube提供过,只是exceptions,所以你得到了一个NameError.

有两种方法可以修复你所拥有的:要么except exceptions.VideoUnavailable,要么import pytube.exceptions。后者是首选,因为它更明确并且避免命名空间冲突:如果您有另一个带有exceptions子模块的模块怎么办?

于 2019-06-15T16:42:05.150 回答