Progress Bar不在Kubernetes上的Python容器中更新



我试图在kubernetes上的python容器中获得一个简单的进度栏。但是,在完成工作之前,它不会输出任何内容,并且进度栏达到100%。相同的确切代码在本地码头容器中完美工作。那么,Kubernetes拥有什么使我无法在日志中实时更新的进度栏?

进度条形码:

import sys
import time

class Color:
    BOLD = '33[1m'
    ENDC = '33[0m'

ERASE_LINE = 'x1b[2Kr'

def percentage(current, total):
    percent = 100 * float(current) / float(total)
    return percent

class ProgressBar:
    def __init__(self, total):
        self._total = total
        self._current = 0
        self.print()
    def update(self):
        self._current += 1
        self.print()
    def print(self):
        percent = percentage(self._current, self._total)
        sys.stdout.write("r")
        sys.stdout.write(Color.BOLD + "[%-50s] %d%%" % ('=' * int(percent / 2), percent) + Color.ENDC)
        sys.stdout.flush()

if __name__=="__main__":
    print("Ready to run soon...")
    time.sleep(10)
    print("Running!")
    pbar = ProgressBar(255)
    for i in range(255):
        time.sleep(0.03)
        pbar.update()

记录时,而不是向人类展示事物,而是需要登录以n结尾的完整行。我通常会建议您打印10%...n20%...n etc之类的东西,而不是进度栏。由您决定频率打印当前状态。

更新:

您可以更新脚本以检测终端是否为TTY,并相应地更改行为

使用此:

import os, sys
if os.isatty(sys.stdout.fileno()):

最新更新