首页  >  文章  >  后端开发  >  如何在 Python 中用计数器和进度条替换控制台输出?

如何在 Python 中用计数器和进度条替换控制台输出?

Patricia Arquette
Patricia Arquette原创
2024-11-03 14:51:30143浏览

How to Replace Console Output with a Counter and Progress Bar in Python?

用 Python 替换控制台输出

Python 的多功能性允许根据特定需求定制自定义控制台输出。一种常见的技术是创建就地更新的动态控制台计数器。

查询:用计数器替换输出

要用进度计数器替换控制台输出,循环可以修改为在执行每次迭代后显示状态消息。与之前的输出(每个状态都包含一个新行)不同,此计数器只会更新最后显示的行。

解决方案:使用 'r'

一个简单的方法解决方案包括在新状态消息之前插入回车符“r”并避免任何换行符。这可确保字符串不会变短,如果希望字符串长度保持一致,则这是一种可行的方法。

例如:

import sys

for i in range(5):
    sys.stdout.write("\rDoing thing %d" % i)
    sys.stdout.flush()

增强的解决方案:进度条

为了更复杂的进度显示,可以实现进度条。下面的代码提供了一个简单的进度条函数:

def start_progress(title):
    sys.stdout.write(title + ": [" + "-" * 40 + "]" + chr(8) * 41)
    sys.stdout.flush()
    progress_x = 0

def progress(x):
    global progress_x
    x = int(x * 40 // 100)
    sys.stdout.write("#" * (x - progress_x))
    sys.stdout.flush()
    progress_x = x

def end_progress():
    sys.stdout.write("#" * (40 - progress_x) + "]\n")
    sys.stdout.flush()

start_progress 函数用标题描述初始化进度条。 Progress(x) 用完成百分比 (x) 更新进度条。最后end_progress完成进度显示。

以上是如何在 Python 中用计数器和进度条替换控制台输出?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn