python打印动态进度条
时间: 2024-10-14 13:04:49 浏览: 36
Python可以使用`print`函数结合`\r`(回车)来创建动态进度条。下面是两个示例:
1. **基于百分比的简单进度条**[^1]:
```python
for i in range(1, 101):
print("\r", end="")
print("进度: {}%: ".format(i), "▓" * (i // 2), end="")
sys.stdout.flush()
time.sleep(0.05)
```
这段代码会从0%开始,每次循环增加1%,并在每一秒内更新一次进度条。
2. **带有时间显示的复杂进度条**:
```python
t = 60
start = time.perf_counter()
for i in range(t + 1):
finish = "▓" * i
remaining = "-" * (t - i)
progress = round((i / t) * 100, 2)
duration = time.perf_counter() - start
print("\r{:<3.0f}%[{}->{}]{:.2f}s".format(progress, finish, remaining, duration), end="")
time.sleep(0.05)
```
这个进度条不仅显示百分比完成情况,还实时显示出当前已经花费的时间(以秒为单位),以及剩余时间的估计。
相关问题
Python打印文本进度条 例如starting......done!
在Python中,我们可以使用一些第三方库如`tqdm`(total quality movement interface)来方便地创建文本进度条。下面是一个简单的例子:
```python
from tqdm import tqdm
# 假设我们有一个需要处理的任务列表
tasks = range(100)
# 使用tqdm包装for循环
for task in tqdm(tasks):
# 这里可以替换为你的实际任务代码
time.sleep(0.1) # 模拟耗时操作
# 当所有任务完成时,进度条会自动显示 "done!"
```
在这个例子中,`tqdm`函数会返回一个迭代器,其内部维护了一个进度条,随着每次迭代的进行,进度条会逐步更新,最后显示"done!"。
如果你不想使用外部库,也可以手动编写简单的控制台进度条,例如使用`time`模块和`\r`字符刷新行:
```python
start_time = time.time()
progress_bar = "["
for i in range(100):
progress_bar += "="
print(f"\rStarting... [{progress_bar}] {i+1}/{100}", end="")
time.sleep(0.1)
print("\rdone! Time taken:", round(time.time() - start_time, 2), "seconds")
```
python打印进度条
在Python中,你可以使用第三方库如`tqdm`(`Terminal Queued Progressbar`的缩写)来方便地创建和显示进度条。这个库可以在控制台中显示任务的进度,并支持多种定制选项。下面是一个简单的例子:
```python
from tqdm import tqdm
# 假设我们有一个需要处理的任务列表
tasks = range(100)
# 使用tqdm包装for循环,它会自动显示进度
with tqdm(total=len(tasks), desc='Processing tasks') as pbar:
for i in tasks:
# 这里是你实际的任务代码
do_something(i)
# 更新进度条
pbar.update(1) # 每完成一个任务,进度加1
```
在这个示例中,`desc`参数设置进度条的描述,`total`指定总共有多少项任务,`update(1)`用于每次迭代后更新进度。`with`语句可以确保进度条在任务完成后关闭。
如果你想要在Jupyter Notebook中使用进度条,可以直接使用`tqdm.notebook.tqdm()`。
阅读全文