Python-如何替换多个输出行?
我有三个输出,我想每3秒钟更换一次 使用此代码,它只打印c:Python-如何替换多个输出行?,python,database,firebase,firebase-realtime-database,pyrebase,Python,Database,Firebase,Firebase Realtime Database,Pyrebase,我有三个输出,我想每3秒钟更换一次 使用此代码,它只打印c: import sys import time a = 1 b = 5 c =10 while True: sys.stdout.write("\r" + str(a)) sys.stdout.write("\r" + str(b)) sys.stdout.write("\r" + str(c)) time.sleep(3) a += 1 b+=1 c+=1 sys.stdout
import sys
import time
a = 1
b = 5
c =10
while True:
sys.stdout.write("\r" + str(a))
sys.stdout.write("\r" + str(b))
sys.stdout.write("\r" + str(c))
time.sleep(3)
a += 1
b+=1
c+=1
sys.stdout.flush()
有没有人可以用三行打印所有代码?没有,它是打印
a
,立即用b
覆盖,然后用c
覆盖,所以c
就是你所看到的。要使这三种功能都可见,唯一的方法(除了利用诅咒
或其他一些高级终端功能外)是以单行方式打印它们,如下所示:
sys.stdout.write("\r{} {} {}".format(a,b,c))
不,它正在打印
a
,立即用b
覆盖它,然后用c
覆盖它,所以c
就是你所看到的一切。要使这三种功能都可见,唯一的方法(除了利用诅咒
或其他一些高级终端功能外)是以单行方式打印它们,如下所示:
sys.stdout.write("\r{} {} {}".format(a,b,c))
您之所以只看到前面提到的c,是因为它是您在调用sys.stdout.flush()之前编写的最后一个代码。 如果删除
sys.stdout.write(“\r”+str(c))
中的部分,您将看到b
正如@Błotosmętek在我之前提到并回答的那样,您可以格式化所需的输出,然后执行刷新。您之所以只看到前面提到的c,是因为它是您在调用
sys.stdout.flush()之前编写的最后一个代码。
如果删除sys.stdout.write(“\r”+str(c))
中的部分,您将看到b
正如@Błotosmętek在我之前提到并回答的,您可以格式化所需的输出,然后执行刷新。以上所有操作都是正确的。
只需确保为While循环创建一些端点
import sys
import time
import os
def clear():
os.system( 'cls' )
a = 1
b = 5
c =10
while c<20:
sys.stdout.write("\r" "****************************\n")
sys.stdout.write("\r" "This is Run : " + str(a) + "\n")
sys.stdout.write("\r" "****************************\n")
sys.stdout.write("\r" " This is a : " + str(a) + "\n This is b :" + str(b) + "\n This is C:" +str(c) + "\n" )
time.sleep(2)
a += 1
b+=1
c+=1
sys.stdout.flush()
clear()
导入系统
导入时间
导入操作系统
def clear():
操作系统(“cls”)
a=1
b=5
c=10
c以上各项均正确。
只需确保为While循环创建一些端点
import sys
import time
import os
def clear():
os.system( 'cls' )
a = 1
b = 5
c =10
while c<20:
sys.stdout.write("\r" "****************************\n")
sys.stdout.write("\r" "This is Run : " + str(a) + "\n")
sys.stdout.write("\r" "****************************\n")
sys.stdout.write("\r" " This is a : " + str(a) + "\n This is b :" + str(b) + "\n This is C:" +str(c) + "\n" )
time.sleep(2)
a += 1
b+=1
c+=1
sys.stdout.flush()
clear()
导入系统
导入时间
导入操作系统
def clear():
操作系统(“cls”)
a=1
b=5
c=10
当c时,发生这种情况是因为命令
sys.std.write
正在覆盖输出。只有在调用sys.stdout.flush()
时,输出才会被清除。尽管此命令也只是清除数据缓冲区,这是python临时存储数据的临时区域。因此,点击它只会将光标放到新行,即相当于\n
新行字符
因此,基本上您需要在字符串的末尾编写一个新行字符\n
,以显示所有输入
此外,如果要清除控制台,可以使用os.system('clear')
有关更清洁的输出,请参阅以下代码
import os
import sys
import time
a, b, c = 1, 5, 10
while True:
sys.stdout.write(f"a:{a} b:{b} c:{c}\n")
time.sleep(3)
a += 1
b += 1
c += 1
#clear console
os.system('clear')
这是因为命令
sys.std.write
正在覆盖输出。只有在调用sys.stdout.flush()
时,输出才会被清除。尽管此命令也只是清除数据缓冲区,这是python临时存储数据的临时区域。因此,点击它只会将光标放到新行,即相当于\n
新行字符
因此,基本上您需要在字符串的末尾编写一个新行字符\n
,以显示所有输入
此外,如果要清除控制台,可以使用os.system('clear')
有关更清洁的输出,请参阅以下代码
import os
import sys
import time
a, b, c = 1, 5, 10
while True:
sys.stdout.write(f"a:{a} b:{b} c:{c}\n")
time.sleep(3)
a += 1
b += 1
c += 1
#clear console
os.system('clear')
谢谢,但它没有替换行,它启动了一个新的hanks,但它没有替换行,它启动了一个新的os.system('clear')或os.system('cls')不清除屏幕。我得到一个错误代码,它添加了另一个lineThk())Hack,命令“clear”==所需的结果。os.system('clear')或os.system('cls')不清除屏幕。我得到一个错误代码,它使用命令“clear”==期望的结果添加了另一个lineThk)。