在Python中输出进度条可以通过多种方法实现,以下是几种常见的方法:
方法一:使用`print`函数和`sys.stdout.write`
import sysimport timedef progress_bar(num, sum_total):rate = float(num) / float(sum_total)rate_num = int(rate * 100)sys.stdout.write('\r%d%% : ' % rate_num)for i in range(0, num):sys.stdout.write('█')sys.stdout.flush()if __name__ == '__main__':for i in range(0, 100):time.sleep(0.1)progress_bar(i + 1, 100)
方法二:使用`time.sleep`模拟任务处理时间
import timedef simple_progress_bar(scale=10):print('------执行开始------')for i in range(scale + 1):a = '*' * ib = ' . . ' * (scale - i)c = (i / scale) * 100dur = time.perf_counter() - startprint('\r{:^3.0f}%[{}]{}s'.format(c, a, b, dur), end='')sys.stdout.flush()time.sleep(0.05)if __name__ == '__main__':start = time.perf_counter()simple_progress_bar()

方法三:使用第三方库`tqdm`
from tqdm import tqdmimport timemylist = [1, 2, 3, 4, 5, 6, 7, 8]for i in tqdm(mylist):time.sleep(1)
方法四:自定义进度条类
class ProgressBar:def __init__(self, width=50):self.pointer = 0self.width = widthdef __call__(self, x):self.pointer = int(self.width * (x / 100.0))return self.pointer + ' ' * (self.width - self.pointer) + '% done'if __name__ == '__main__':pb = ProgressBar()for i in range(101):print(pb(i), end='\r')time.sleep(0.1)
以上方法都可以用来在Python中输出进度条。你可以根据自己的需求选择合适的方法。如果需要更复杂的进度条效果,可以使用第三方库,如`Progress`或`tqdm`,它们提供了更多的功能和定制选项
