【问题标题】:Python3 how to clear previous prints while looping, flush? [duplicate]Python3如何在循环,刷新时清除以前的打印? [复制]
【发布时间】:2021-03-27 12:20:53
【问题描述】:

我想在屏幕上只显示一个项目,我想这应该使用 print(..., flush=True) 来完成,但它没有按我的预期工作。

for i in range(0,100):
    print(i, end='', flush=True)

现在我得到一个像012345678.... 这样的数字,而我想在屏幕上看到的只是一个数字而没有看到以前的打印,所以第一次迭代它只显示0 第二个只显示1,我想冲洗会做的伎俩,但它没有所以我错在哪里?

【问题讨论】:

标签: python python-3.x python-3.8 flush


【解决方案1】:

您可以使用end='\r' 作为print() 的参数。 \r 转义序列将光标移动到行首。 flush 不是这样做的正确论据。

您的代码可以是:

for i in range(0,100):
    print(i, end='\r')

【讨论】:

  • 请问为什么 flush 不是正确的论点?
  • 如果你不介意我的字符串越来越小怎么办?我怎么会这样?
  • @StrudzonyWedrowiec 然后在字符串中添加空格
  • 好的,我知道了,非常感谢
【解决方案2】:

您可以使用os 模块来做同样的事情

import os
import time

for i in range(100):
    print(i)
    time.sleep(1)
    os.system("clear") # For Linux
    #os.system("cls") # For Windows


我使用time.sleep() 来确保效果可见,否则它执行得非常快。您可以根据需要进行更改。

【讨论】:

  • 我知道这一点,但我正在寻找类似于 bluefish 和 Sumagna Das 发布的解决方案
猜你喜欢
  • 2016-12-21
  • 1970-01-01
  • 1970-01-01
  • 2019-04-16
  • 2017-12-29
  • 2020-03-30
  • 1970-01-01
  • 2021-11-06
  • 2019-04-23
相关资源
最近更新 更多