python – 控制台中的文本进度条
发布时间:2020-12-20 13:06:52 所属栏目:Python 来源:网络整理
导读:有一个很好的方法来做到以下几点? 我写了一个简单的控制台应用程序,使用ftplib从FTP服务器上传和下载文件. 每次下载一些数据块时,我都想更新文本进度条,即使它只是一个数字. 但我不想删除所有打印到控制台的文本. (执行“清除”然后打印更新的百分比.) 解决
有一个很好的方法来做到以下几点?
我写了一个简单的控制台应用程序,使用ftplib从FTP服务器上传和下载文件. 每次下载一些数据块时,我都想更新文本进度条,即使它只是一个数字. 但我不想删除所有打印到控制台的文本. (执行“清除”然后打印更新的百分比.) 解决方法
以下是我经常使用的许多答案的汇总.
# Print iterations progress def printProgressBar (iteration,total,prefix = '',suffix = '',decimals = 1,length = 100,fill = '█'): """ Call in a loop to create terminal progress bar @params: iteration - Required : current iteration (Int) total - Required : total iterations (Int) prefix - Optional : prefix string (Str) suffix - Optional : suffix string (Str) decimals - Optional : positive number of decimals in percent complete (Int) length - Optional : character length of bar (Int) fill - Optional : bar fill character (Str) """ percent = ("{0:." + str(decimals) + "f}").format(100 * (iteration / float(total))) filledLength = int(length * iteration // total) bar = fill * filledLength + '-' * (length - filledLength) print('r%s |%s| %s%% %s' % (prefix,bar,percent,suffix),end = 'r') # Print New Line on Complete if iteration == total: print() 样品用法: from time import sleep # A List of Items items = list(range(0,57)) l = len(items) # Initial call to print 0% progress printProgressBar(0,l,prefix = 'Progress:',suffix = 'Complete',length = 50) for i,item in enumerate(items): # Do stuff... sleep(0.1) # Update Progress Bar printProgressBar(i + 1,length = 50) 样本输出: Progress: |█████████████████████████████████████████████-----| 90.0% Complete (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |