在Python中,可以使用多种方法来创建文本进度条。以下是几种常见的方法:
方法一:使用`print()`函数实现文本进度条
这种方法不依赖任何额外的库,通过打印文本来显示进度条。示例代码如下:
```python
import time
import sys
def print_progress_bar(iteration, total, prefix='', length=50):
percent = (iteration / total) * 100
filled_length = int(length * iteration // total)
bar = '█' * filled_length + '-' * (length - filled_length)
sys.stdout.write(f'\r{prefix} |{bar}| {percent:.2f}% Complete')
sys.stdout.flush()
total_steps = 100
for i in range(total_steps + 1):
print_progress_bar(i, total_steps)
time.sleep(0.1)
print() 换行,以便最后输出后换行
```
方法二:单行动态刷新文本进度条
这种方法通过在每次迭代中覆盖前一次输出的字符来实现进度条的动态刷新。示例代码如下:
```python
import time
scale = 10
print("执行开始")
for i in range(scale + 1):
a = '*' * i
b = '.' * (scale - i)
c = (i / scale) * 100
print("{:^3.0f} . format(c, a, b)".format(c))
time.sleep(0.1)
print("执行结束")
```
方法三:带刷新的文本进度条
这种方法结合了单行动态刷新和计时器,可以更直观地显示程序的执行时间。示例代码如下:
```python
import time
scale = 50
print("执行开始".center(scale // 2, '-'))
t = time.perf_counter()
for i in range(scale + 1):
a = '*' * i
b = '.' * (scale - i)
c = (i / scale) * 100
print("{:^3.0f} . format(c, a, b)".format(c))
time.sleep(0.1)
print("执行结束 - 程序运行时间: {:.2f} 秒".format(time.perf_counter() - t))
```
方法四:使用shell脚本创建进度条
如果你希望在命令行中显示进度条,可以使用shell脚本来实现。以下是一个简单的示例:
```bash
!/bin/bash
jindu() {
while :; do
echo -n ''
sleep 0.2
done
}
jindu &
cp -a $1 $2
killall $0
echo "拷贝完成"
```
将上述代码保存为一个`.sh`文件,然后在命令行中运行即可看到进度条的效果。
总结
以上方法都可以用来创建文本进度条,具体选择哪种方法取决于你的需求和使用的环境。如果你需要在Python脚本中实现,建议使用方法一或方法二,因为它们不依赖于外部库,且易于实现和调试。如果你希望在命令行中显示进度条,可以使用方法四。