首先,我们可以定义一个函数progress_bar,手码一个进度条
import time def progress_bar(total, prefix='', suffix='', decimals=1, length=50, fill='█'): """ 实现简单的文本进度条 :param total: 总进度值 :param prefix: 进度条前缀 :param suffix: 进度条后缀 :param decimals: 进度数值的小数位数 :param length: 进度条的长度 :param fill: 进度条填充字符 """ percent = ("{0:." + str(decimals) + "f}").format(100 * (i / float(total))) filled_length = int(length * i // total) bar = fill * filled_length + '-' * (length - filled_length) print(f'\r{prefix} |{bar}| {percent}% {suffix}', end='\r') # 设置总进度值 total = 100 # 模拟进度更新 for i in range(total + 1): time.sleep(0.1) # 模拟耗时操作 progress_bar(total, prefix='进度:', suffix='完成', length=30, fill='█') print("\n进度条完成!")
这段代码实现了一个简单的文本进度条,可以在命令行中显示进度的更新。首先,我们定义了一个名为
progress_bar
的函数,接受多个参数用于自定义进度条的样式和外观。在函数内部,我们根据传入的参数计算出当前进度的百分比,并根据百分比来确定填充进度条的长度和填充字符。接下来,在主程序中,我们设置了总进度值total
,然后使用一个循环来模拟进度的更新。在每次循环迭代中,我们调用progress_bar
函数来显示当前进度条的状态。为了模拟耗时操作,我们使用time.sleep(0.1)
来等待一小段时间。最后,当循环结束后,我们打印出一条提示信息表示进度条的完成。
除了自己手码一个进度条 ,还可以调用进度条的库
1使用
tqdm
库先下载包:python pip下载包-CSDN博客
from tqdm import tqdm import time data = range(10) for item in tqdm(data, desc='Processing'): time.sleep(0.1)
运行效果
以上述代码为例,desc是进度条的名称,data是循环的范围,简单修改以下
from tqdm import tqdm for j in tqdm(range(1000000), desc='进度条'): i=j*5
2使用alive-progress库
from alive_progress import alive_bar import time data = range(10) with alive_bar(len(data)) as bar: for item in data: time.sleep(0.1) bar()
3使用
tqdm.auto
库(适用于循环或迭代器的情况)from tqdm.auto import tqdm import time data = range(10) with tqdm(total=len(data), desc='Processing') as pbar: for item in data: time.sleep(0.1) pbar.update(1)
4使用
progressbar
库from progressbar import ProgressBar import time data = range(10) progress = ProgressBar() for item in progress(data): time.sleep(0.1)