[英]How to dynamically update terminal output on multiple lines in python3?
我正在嘗試編寫一個程序,通過將數據動態打印到終端來模擬 20x4 字符 LCD 屏幕。 目前我只是想讓輸出到終端工作,但我無法弄清楚如何在不使用換行符的情況下同時打印多行。
import time
i = 0
for i in range(0, 9):
print(str(i) + str(i) + str(i) + str(i) + str(i) +
str(i) + str(i) + str(i) + str(i) + str(i) +
str(i) + str(i) + str(i) + str(i) + str(i) +
str(i) + str(i) + str(i) + str(i) + str(i), end='\r')
print(str(i) + str(i) + str(i) + str(i) + str(i) +
str(i) + str(i) + str(i) + str(i) + str(i) +
str(i) + str(i) + str(i) + str(i) + str(i) +
str(i) + str(i) + str(i) + str(i) + str(i), end='\r')
print(str(i) + str(i) + str(i) + str(i) + str(i) +
str(i) + str(i) + str(i) + str(i) + str(i) +
str(i) + str(i) + str(i) + str(i) + str(i) +
str(i) + str(i) + str(i) + str(i) + str(i), end='\r')
time.sleep(1)
目前,此代碼打印一行 20 個字符,這些字符可以正確更新,但我需要在它下面添加兩行。 我想要的預期輸出是 4 行,每行 20 個字符,每行動態更新。 最終,每一行將只是 20 個字符的一個字符串。
您應該能夠使用f 字符串格式和docstring來實現這一點。
請參閱此處的F 字符串(格式化字符串文字)的官方文檔
代碼應該是這樣的。
import time
i = 0
for i in range(0, 9):
print(f"""
{str(i)} {str(i)} {str(i)} {str(i)} {str(i)}
{str(i)} {str(i)} {str(i)} {str(i)} {str(i)}
{str(i)} {str(i)} {str(i)} {str(i)} {str(i)}
{str(i)} {str(i)} {str(i)} {str(i)} {str(i)} """)
time.sleep(1)
如果這不是您要找的東西,請告訴我如果這有幫助,請告訴我,以便我可以幫助您找到更適合您需求的東西。
稍微調整 Rodrez 的回答:
import time
i = 0
goback = "\033[F" * 5 # 👈 this "climbs you back up 5 lines" at the next
# iteration, output at same spot, like `top`
for i in range(0, 9):
print(f"""{goback}
{i} {i} {i} {i} {i}
{i} {i} {i} {i} {i}
{i} {i} {i} {i} {i}
{i} {i} {i} {i} {i} """)
time.sleep(1)
請參閱https://stackoverflow.com/a/11474509了解我從哪里獲得奇怪的字符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.