在Python中实现进度条效果可以使用sys和time模块来实现。具体代码如下:
import sysimport timedef 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函数可以实现在同一行不断更新输出,从而实现进度条效果。


