在pytube中添加进度条

Adding a progress bar in pytube

我可以使用 Zubo 的回答添加带有 的进度条。但是,我只想显示 10 的倍数(10%、20%、30%...100%),所以我添加了 if 语句

但是,当我 运行 代码时,结果是打印 10 的倍数。我如何编写代码才能只打印一次?

def progress_function(stream, chunk, file_handle, bytes_remaining):
    percent = round((1-bytes_remaining/video.filesize)*100)
    if( percent%10 == 0):
        print(percent, '% done...')

另一个问题是Ismael GraHms的回答,他在方法参数里面加了selfdef progress_function(self,stream, chunk,file_handle, bytes_remaining):然而,当我运行他的代码时,却显示错误progress_function() missing 1 required positional argument: 'bytes_remaining'。我不太明白为什么他的代码不是 运行ning.

0% 完成...
0% 完成...
0% 完成...
0% 完成...
0% 完成...
0% 完成...
0% 完成...
0% 完成...
0% 完成...
0% 完成...
0% 完成...
完成 10%...
完成 10%...
完成 10%...
完成 10%...
完成 10%...
完成 10%...
完成 10%...
完成 10%...
.
.omitted for space issue but same goes on for 20%,30%...
.
100% 完成...
100% 完成...
100% 完成...
100% 完成...
100% 完成...
100% 完成...
100% 完成...
100% 完成...
100% 完成...
100% 完成...
100% 完成...
100% 完成...
100% 完成...

快速修复是这样的:

progress = 0
if(progress <= round((1-bytes_remaining/video.filesize)*100)):
    print(progress, '% done...')
    progress += 10