Python tqdm 进度条自动换行
进度条是在编写长时间运行的任务时非常有用的工具,它可以实时显示任务的进度,让用户了解任务的执行情况。在 Python 中,tqdm
是一个非常流行的进度条库。然而,默认情况下,tqdm
进度条会占据一行,如果任务很长,进度条可能会超出终端的宽度。本文将介绍如何在 tqdm
进度条中实现自动换行。
安装 tqdm
首先,我们需要安装 tqdm
库。可以使用 pip 命令进行安装:
$ pip install tqdm
简单示例
让我们从一个简单的示例开始。我们将使用 range
函数模拟一个长时间运行的任务,并用 tqdm
进度条来显示任务的执行进度。
from tqdm import tqdm
import time
for i in tqdm(range(100)):
time.sleep(0.1)
以上代码创建了一个从 0 到 99 的循环,每次循环休眠 0.1 秒。在循环中,我们使用 tqdm
函数包装 range
函数,并将其作为迭代对象传递给 tqdm
。tqdm
将自动计算并显示进度条。
进度条自动换行
默认情况下,tqdm
进度条会占据一行,并在终端的右侧显示。如果任务的执行时间很长,进度条可能会超出终端的宽度,导致显示不完整。为了解决这个问题,可以使用 tqdm
提供的 dynamic_ncols
参数来实现进度条的自动换行。
from tqdm import tqdm
import time
for i in tqdm(range(100), dynamic_ncols=True):
time.sleep(0.1)
在上面的示例中,我们将 dynamic_ncols
参数设置为 True
。这将允许进度条根据终端的宽度自动调整其宽度,并在需要时自动换行。
进一步自定义
除了自动换行,tqdm
还提供了许多其他选项,可以根据需要进行自定义。以下是一些常用的选项:
desc
:进度条的描述信息。total
:任务的总数量。unit
:任务数量的单位。bar_format
:进度条的格式字符串。
from tqdm import tqdm
import time
for i in tqdm(range(100), dynamic_ncols=True, desc='Processing', total=100, unit='steps', bar_format='{desc}: {percentage:3.0f}%|{bar:50}{r_bar}'):
time.sleep(0.1)
在上面的示例中,我们使用 desc
参数来设置进度条的描述为 "Processing"。total
参数用于设置任务的总数量,这里设置为 100。通过 unit
参数,我们将任务的单位设置为 "steps"。最后,我们使用 bar_format
参数来自定义进度条的格式,将进度百分比显示为整数,并将进度条的长度设置为 50 个字符。
结论
在 Python 中使用 tqdm
库可以轻松地为长时间运行的任务创建进度条。本文介绍了如何实现 tqdm
进度条的自动换行,以及如何进行进一步的自定义。希望本文能够帮助你更好地使用 tqdm
库来监视和显示任务的执行进度。
参考文献:
- [tqdm documentation](
以上是关于使用 tqdm
进度条自动换行的科普文章,希望对你有帮助!