我正在编写一个小应用程序,以通过http下载文件(例如,描述为here)。
我还想添加一个下载进度指示器,以显示下载进度的百分比。
这是我想出的:
sys.stdout.write(rem_file +“...”)
urllib.urlretrieve(rem_file,loc_file,reporthook = dlProgress)
def dlProgress(count,blockSize,totalSize):
百分比= int(count * blockSize * 100 / totalSize)
sys.stdout.write(“%2d %%”“%百分比)
sys.stdout.write(“\ b \ b \ b”)
sys.stdout.flush()
输出:MyFileName ... 9%
还有其他想法或建议吗?
有点烦人的一件事是百分比的第一位数的终端中闪烁的光标。有办法防止这种情况吗?有没有隐藏光标的方法?
编辑:
这是在dlProgress中使用全局变量作为文件名和'\ r'代码的更好选择:
全局rem_file#在dlProgress中使用的全局变量
urllib.urlretrieve(rem_file,loc_file,reporthook = dlProgress)
def dlProgress(count,blockSize,totalSize):
百分比= int(count * blockSize * 100 / totalSize)
sys.stdout.write(“\ r” + rem_file +“...%d %%”%%)
sys.stdout.flush()
输出:MyFileName ... 9%
光标显示在该行的末尾。好多了。
最佳答案
在http://pypi.python.org/pypi/progressbar/2.2上有一个针对python的文本进度栏库,您可能会发现它有用: