python

Python中的print函数如何实现进度条效果

小樊
109
2024-07-20 06:25:47
栏目: 编程语言

在Python中实现进度条效果可以使用systime模块来实现。具体代码如下:

import sys
import time

def progress_bar(iterable, total=None):
    if total is None:
        total = len(iterable)

    bar_length = 50
    start_time = time.time()
    for i, item in enumerate(iterable, 1):
        progress = i / total
        elapsed_time = time.time() - start_time
        eta = elapsed_time / progress - elapsed_time

        bar = "#" * int(progress * bar_length)
        sys.stdout.write(f"\r[{bar:50}] {i}/{total} - {progress*100:.1f}% - ETA: {eta:.2f}s")
        sys.stdout.flush()

        yield item

    sys.stdout.write('\n')

# 示例
for _ in progress_bar(range(100)):
    time.sleep(0.1)

以上代码定义了一个progress_bar函数,接受一个可迭代对象和总数作为参数,然后在循环中打印进度条和相关信息。使用sys.stdout.write函数可以实现在同一行不断更新输出,从而实现进度条效果。

0
看了该问题的人还看了