我正在编写一个小应用程序来通过 http 下载文件(例如,在此处描述)。
我还想包含一个小的下载进度指示器,显示下载进度的百分比。
这是我想出的:
sys.stdout.write(rem_file + "...") urllib.urlretrieve(rem_file,loc_file,reporthook=dlProgress) def dlProgress(计数,块大小,总大小): 百分比 = int(count*blockSize*100/totalSize) sys.stdout.write("%2d%%" % percent) sys.stdout.write("\b\b\b") sys.stdout.flush()
输出:我的文件名... 9%
还有其他想法或建议吗?
有点烦人的是终端中百分比的第一位数字上的闪烁光标。有没有办法防止这种情况?有没有办法隐藏光标?
编辑:
在 dlProgress 和 '\r' 代码中使用全局变量作为文件名的更好选择:
global rem_file # 在 dlProgress 中使用的全局变量 urllib.urlretrieve(rem_file,loc_file,reporthook=dlProgress) def dlProgress(计数,块大小,总大小): 百分比 = int(count*blockSize*100/totalSize) sys.stdout.write("\r" + rem_file + "...%d%%" % percent) sys.stdout.flush()
输出:我的文件名...9%
光标出现在行的末尾。好多了。