Skip to content
kingchen24Public

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

tqdm 炫酷演示 🚀

基于 tqdm (29,000+ GitHub Stars) 的学习改造项目

tqdm 是 Python 中最流行的进度条库,名字来源于阿拉伯语 taqaddum (进步), 也是西班牙语 te quiero demasiado (我超爱你) 的缩写。

本项目对其核心代码进行精简,并添加了一个包含 12 个趣味演示 的综合 demo, 帮助你快速理解 tqdm 的设计与用法。

项目结构

tqdm_demo/
├── tqdm/          # tqdm 核心库(精简版)
├── demo.py        # 🌟 12个炫酷演示脚本
├── run.py         # 单个示例快速运行
├── LICENCE        # MIT 开源协议
└── README.md      # 本文件

快速开始

# 安装依赖(仅 colorama)
pip install colorama

# 运行全部 12 个演示
python demo.py

# 运行单个演示
python run.py basic        # 基础进度条
python run.py colors       # 彩色进度条
python run.py download     # 文件下载模拟
python run.py nested       # 嵌套进度条
python run.py custom       # 自定义格式
python run.py concurrent   # 并发处理
python run.py training     # ML训练模拟

演示列表

# 演示 说明
1 基础进度条 tqdm(iterable) 最简单的用法
2 trange 快捷 trange(N) == tqdm(range(N))
3 彩色进度条 支持 red/green/blue/yellow 等
4 进度条样式 ASCII / Unicode 方块样式
5 嵌套进度条 多层循环进度显示
6 文件下载 模拟下载,显示速度和大小
7 批量处理 pbar.update() 手动控制
8 动态描述 实时改变进度条文字
9 日志输出 tqdm.write() 不打断进度
10 自定义格式 创意进度条(💣扫雷 🚀发射)
11 并发处理 thread_map 多线程+进度
12 ML训练 综合模拟神经网络训练

tqdm 核心原理

# tqdm 本质是一个可迭代的包装器
class tqdm:
    def __init__(self, iterable, desc="", total=None, ...):
        self.iterable = iterable
        self.n = 0          # 当前进度
        self.total = total  # 总数
        self.start_t = time()  # 开始时间
        ...

    def __iter__(self):
        for obj in self.iterable:
            yield obj
            self.n += 1
            self.refresh()  # 刷新显示
        self.close()

核心技巧:

  • \r 回车符:回到行首覆盖更新(而非换行)
  • EMA 平滑:用指数移动平均计算速率,避免抖动
  • 自适应刷新:根据 mininterval 和 miniters 控制刷新频率

许可证

MIT License — 详见 LICENCE

原作者

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages