[Python] 使用print作进度条(解决end=''时print不显示的问题)
print,,x27,Python,使用,进度条,解决,end,显示,问题
2025-03-13 21:27:17 时间
0x00
Python的print()
末尾自带\n
,如果不想要末尾的\n
可以使用end=''
控制末尾的字符。
例如这样:
# 示例一
print("12",end='')
print("34")
# 打印
# 1234
# 示例一
print("12",end='-')
print("34")
# 打印
# 12-34
0x01
假如现在要写一个加载进度条,大部分人下意识会这样用:
为了展示方便使用延时
import time
print('加载中',end="")
for n in range(0,10):
print(".",end="")
time.sleep(0.5)
print("\n加载成功!")
显示如下:
加载中..........
加载成功!
虽然结果看着没问题,但过程有问题。
理想中的进度条.
应该是渐渐出现的,就像这样:
加载中.
加载中..
加载中...
加载中....
可这个程序的加载中..........
是整个出现的,就像这样:
// 运行
// 1s
// 2s
// 3s
// 4s
// 5s
加载中..........
0x02
经过查询得知,print
只有在接收到\n
时才会把数据送到控制台显示。
例如:
# 示例一
print('1',end='') # 控制台不显示
print('2',end='') # 控制台不显示
print('3') # 控制台显示 123
# 示例二
print('1',end='') # 控制台不显示
print('2',end='') # 控制台不显示
print('') # 控制台显示 12
# 示例三
print('1',end='') # 控制台不显示
print('2',end='') # 控制台不显示
print('3\n',end='') # 控制台显示 123
0x03
解决起来也很简单,给print()
加一个flush=True
即可。
例如上面的0x01的程序,只要改成这样就能实现理想中的效果了。
import time
print('加载中',end="",flush=True)
for n in range(0,10):
print(".",end="",flush=True)
time.sleep(0.5)
print("\n加载成功!")
相关文章
- USB 摄像头 进行python OpenCV 操作的基础设置【以yolo 目标检测为例】
- python执行cmd命令并解析结果_python如何打包成可执行程序
- Python装饰器详解
- 2.1pycharm 设置Python模块的搜索路径的方式「建议收藏」
- Python DB-API 规范及 MySQL Connector/Python 实现
- Python面试基础知识_python自学需要哪些基础知识
- miniconda可以运行python吗_pycharm怎么配置anaconda环境
- Python进阶43-drf框架(五)
- Pycharm的python interpreter选择「建议收藏」
- 【过程记录】python环境离线迁移
- python之抛出异常(raise语句)「建议收藏」
- python换行符使用_python中怎么换行?「建议收藏」
- python 安装第三方包-安装失败(pycharm/ anaconda navigator)
- Python之谜:四舍五入round(4.5)等于4?
- pycharm html注释快捷键_python一键注释
- 记一次python清洗疫情历史数据
- Python进阶41-drf框架(三)
- pycharm编码设置为utf-8._python字符编码使用ascii编码对么
- dataframe loc iloc_python的isnull函数
- PyAOS:大气和海洋科学Python社区