在再次覆盖同一行之前,您需要至少清除带有空格的点的位置.
def processing_flush(n, index=5):
sys.stdout.write("\rProcessing %s" % (index * " "))
sys.stdout.write("\rProcessing %s" % ((n % index)* "."))
sys.stdout.flush()
上面的代码可能会导致一些短暂的闪烁.在您的特定情况下,当n%index变为0时清除该行就足够了:
def processing_flush(n, index=5):
if n % index == 0:
sys.stdout.write("\rProcessing %s" % (index * " "))
sys.stdout.write("\rProcessing %s" % ((n % index)* "."))
sys.stdout.flush()
或者更好的是总是写下index-1字符:
def processing_flush(n, index=5):
sys.stdout.write("\rProcessing %s%s" % ((n % index)* ".", (index - 1 - (n % index))* " "))
sys.stdout.flush()
编辑1:或者如果您希望光标始终位于最后一个点之后:
def processing_flush(n, index=5):
sys.stdout.write(&#