You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用tqdm同时显示文件步骤进度与基于大小的总进度占比

解决方案

要实现显示当前处理文件序号(M/N)+ 基于总文件大小的进度百分比的效果,我们可以结合tqdm的set_description方法和自定义进度条格式,具体实现如下:

from tqdm import tqdm
from time import sleep

# 模拟各文件大小
file_sizes = (3, 2, 1, 4)
total_files = len(file_sizes)
total_size = sum(file_sizes)

# 自定义进度条格式:描述部分显示文件进度,后跟基于总大小的百分比
bar_format = '{desc} {percentage:3.0f}%'

with tqdm(total=total_size, bar_format=bar_format) as bar:
    for file_num, size in enumerate(file_sizes, start=1):
        # 模拟文件处理耗时
        sleep(size)
        # 更新已处理的文件大小,tqdm自动计算百分比
        bar.update(size)
        # 更新进度条描述为当前文件序号/总文件数
        bar.set_description(f'{file_num} of {total_files}')

代码说明:

  1. 基础参数初始化:计算总文件数total_files和总文件大小total_size,后者作为tqdm的进度总基准。
  2. 自定义格式:bar_format指定进度条显示内容,{desc}会被后续设置的描述文本替换,{percentage}由tqdm基于已处理大小/总大小自动计算。
  3. 循环处理文件:
    • 每次处理完一个文件后,用bar.update(size)更新已处理的总大小,触发百分比计算。
    • 用bar.set_description()动态更新进度条的描述部分,显示当前是第几个文件。

运行这段代码后,输出效果将完全符合需求:

1 of 4  30%
2 of 4  50%
3 of 4  60%
4 of 4 100%

内容的提问来源于stack exchange,提问作者Lecron

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 10:20:43