python - 如何在 python 中取得进展?

标签 python python-3.x

我需要在 Python 中制作一个在 x% 处打印的进度条。
因此,例如,如果该值为 62%,是否有办法打印出这样的内容?

▮▮▮▮▮▮▮▮▮▮▮▮▮▮▮▮▮▮▮▮▮▮▮▮▮▮▮▮▮▮▮▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯ 62%

或者,例如,23%

▮▮▮▮▮▮▮▮▮▮▮▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯ 23%

最佳答案

使用 print()end 参数的纯解决方案:

print() 语句允许您指定在调用结束时打印最后的 chars。默认情况下,end 设置为 '\r\n',这是一个回车符和换行符。这会将“光标”移动到下一行的开头,这在大多数情况下都是您想要的。

但是对于进度条,您希望能够在进度条上打印回来,这样您就可以更改当前位置和百分比,而最终结果不会在多行上看起来很糟糕。

为此,我们需要将 end 参数设置为一个回车符:'\r'。这将使我们的当前位置回到行首,以便我们可以在进度条上重新打印

为了演示这是如何工作的,我编写了这个简单的小代码,每 0.5 秒将进度条增加 1%。代码的关键部分是 print 语句,因此您可能会将这部分带走并放入主脚本中。

import time, math

bl = 50  #the length of the bar
for p in range(101):
   chars = math.ceil(p * (bl/100))
   print('▮' * chars + '▯' * (bl-chars), str(p) + '%', end='\r')
   time.sleep(0.5)

(注意,此处使用的字符是从您的问题 ('▮, ▯') 中复制的,对我来说,它们没有打印到控制台,在这种情况下,您需要将它们替换为其他字符,例如:' █' 和 '.')

这段代码做你想做的事情并稳步增加百分比,下面是一个例子,说明当 p = 42 时它的样子:

▮▮▮▮▮▮▮▮▮▮▮▮▮▮▮▮▮▮▮▮▮▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯▯ 42%

关于python - 如何在 python 中取得进展?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46141302/

相关文章:

python - 使用 VirusTotal API 扫描文件

python - IP摄像机中的MTCNN_face_detection_alignment滞后,opencv cv2视频捕获帧矩阵背后的约定

python - 读取 CSV 并将数据上传到 Elasticsearch

python - 如何在 python 的 sklearn 中通过交叉验证执行 SMOTE

python - 使用 Python 实现 collat​​z 函数

python - python 中是否存在无法转换为字符串的类型?

jquery - 如何从 flask 中的 'ImmutableMultiDict'获取数据

python - Django 将旧网址转换为新语法

python - 想要找到轮廓-> ValueError : not enough values to unpack (expected 3, got 2),出现这个

python - 创建一个 fiddle 图的正确方法是什么,其中一把 fiddle 按色调分开?