Python3 如何在循环、刷新时清除之前的打印?
Python3 how to clear previous prints while looping, flush?
我只想在屏幕上显示一个项目我想这应该用 print(..., flush=True) 来完成,但它没有像我预期的那样工作。
for i in range(0,100):
print(i, end='', flush=True)
现在我得到一个像这样的数字 012345678....
并且我想在屏幕上看到的只是一个数字而没有看到以前的印刷品所以第一次迭代它只显示 0
第二次只显示 1
,我以为同花顺可以解决问题,但事实并非如此,所以我哪里错了?
您可以使用 end='\r'
作为 print()
的参数。 \r
转义序列将光标移动到行首。 flush
不是这样做的正确论据。
您的代码可以是:
for i in range(0,100):
print(i, end='\r')
您可以使用 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()
来确保效果可见,否则它执行得非常快。您可以根据需要进行修改。
我只想在屏幕上显示一个项目我想这应该用 print(..., flush=True) 来完成,但它没有像我预期的那样工作。
for i in range(0,100):
print(i, end='', flush=True)
现在我得到一个像这样的数字 012345678....
并且我想在屏幕上看到的只是一个数字而没有看到以前的印刷品所以第一次迭代它只显示 0
第二次只显示 1
,我以为同花顺可以解决问题,但事实并非如此,所以我哪里错了?
您可以使用 end='\r'
作为 print()
的参数。 \r
转义序列将光标移动到行首。 flush
不是这样做的正确论据。
您的代码可以是:
for i in range(0,100):
print(i, end='\r')
您可以使用 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()
来确保效果可见,否则它执行得非常快。您可以根据需要进行修改。