Python打印文本进度条 例如starting......done!
时间: 2024-11-03 12:19:01 浏览: 40
在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打印进度条starting...done
以下是Python代码示例,可以打印一个简单的进度条,显示从开始到完成的进度:
```python
import time
def progress_bar():
print("Starting...", end=' ')
for i in range(10):
print("▓", end='', flush=True)
time.sleep(0.5)
print(" Done!")
progress_bar()
```
输出:
```
Starting... ▓▓▓▓▓▓▓▓▓ Done!
```
在这个例子中,我们使用了`time`模块来模拟一些耗时的操作,每个操作花费0.5秒,共进行了10个操作。进度条由10个方块符号("▓")组成,每完成一个操作,就会在进度条上添加一个方块。我们使用`end=''`和`flush=True`来确保每次打印不会自动换行,并立即刷新输出缓冲区,以便进度条能够及时更新。最后,我们在进度条结束时打印一个"Done!",以表示操作已完成。
打印如下的文本进度条Starting.........................Done!
在控制台或终端模拟文本进度条,通常会在开始执行任务时显示一条"Starting..." 的指示,然后随着进度逐渐填充特定字符(如星号(*) 或条形字符),直到最后完成时显示 "Done!"。例如,你可以使用循环和条件语句来动态更新状态:
```python
length = 50 # 进度条长度
start_str = 'Starting'
end_str = 'Done!'
progress_bar = '*' * (length - len(start_str) - len(end_str)) # 初始化空部分
def print_progress_bar(current_percentage):
filled = int(length * current_percentage)
bar = start_str + progress_bar[:filled] + '=' * (filled - len(start_str)) + end_str
print('\r' + bar, end='', flush=True) # '\r'用于回滚到行首并覆盖原有内容
# 假设有个函数update_percentage()会返回当前进度百分比
for _ in range(100): # 模拟100%进度
update_percentage() # 虚拟调用
print_progress_bar(update_percentage())
print() # 完成后换行,避免文本留在同一行
```
阅读全文