我只想从URL下载Python3中的进度条。 我所拥有的代码不会停留在一行而是打印出数百条新行。是否有办法限制它以使其看起来更干净并且可能改变设计?
class TqdmUpTo(tqdm):
"""Provides `update_to(n)` which uses `tqdm.update(delta_n)`."""
def update_to(self, b=1, bsize=10, tsize=None):
"""
b : int, optional
Number of blocks transferred so far [default: 1].
bsize : int, optional
Size of each block (in tqdm units) [default: 1].
tsize : int, optional
Total size (in tqdm units). If [default: None] remains unchanged.
"""
if tsize is not None:
self.total = tsize
self.update(b * bsize - self.n) # will also set self.n = b * bsize
def downloader(urllink, filename):
with TqdmUpTo(unit='B', unit_scale=True, miniters=1,
desc=urllink.split('/')[-1]) as t: # all optional kwargs
urllib.request.urlretrieve(urllink, filename=filename, reporthook=t.update_to, data=None)
这样的事情是理想的。
100%|███████████████████████████████▉| 8014/8014 [01:37< 00:00,82.29files / s] (来源:https://github.com/tqdm/tqdm)
希望有人可以帮助我,如果可能的话......
提前致谢:)
答案 0 :(得分:0)
y = y - 1;
if(y < 0){
y = height;
}
使用tqdm
每次迭代重写一行,但不同的控制台环境会以不同的方式解释\r
。
只是通过对我在这里所做的一些实验,
\r
从项目的README(强调我的),
tqdm不需要任何依赖项(甚至不是curses!),只需要Python和支持回车符\ r和换行符\ n控制字符的环境。
并且,在“常见问题”下:
游戏机一般:需要支持回车(CR,\ r)。
因此,请尝试切换到其他控制台。
看起来您还想更改条形图的设计(或只是颜色?)。它看起来不像库支持这样,所以你必须要查看源代码并对其进行编辑,或者在Python中尝试不同的进度条实现。
答案 1 :(得分:0)
好吧,我自己解决了这个问题,我从未想过它会那么容易:d
答案称为wget:
import wget
url = "https://www.python.org/static/img/python-logo.png"
filename = "logo.png"
wget.download(url, filename)
或者如果我想使用原始文件名:
import wget
url = "https://www.python.org/static/img/python-logo.png"
filename = wget.download(url, filename)
现在我只需要弄清楚,如何更改设计,但这只是可选的,因为我喜欢它现在的设计。