我知道有人問過類似的問題這里有人問過類似的問題。當單行不超過字串的大小時,這些方法效果很好。請考慮以下代碼,它沒有長字串:
import time
for x in range(100):
print(x, "times", end="\r")
time.sleep(0.2)
現在考慮以下代碼。您可以看到它只是清除超出的行而不是列印字串的所有字符。我想要上述代碼的相同行為。
import time
for x in range(100):
print(x, "timesjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj", end="\r")
time.sleep(0.2)
請注意,我使用 VS 代碼。當字串的大小很長時,如何清除所有字符?
uj5u.com熱心網友回復:
也許你可以試試這個:
import time
import sys
CURSOR_UP_ONE = '\x1b[1A'
ERASE_LINE = '\x1b[2K'
for x in range(100):
print(x, "timesjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj")
sys.stdout.write(CURSOR_UP_ONE*2)
sys.stdout.write(ERASE_LINE)
time.sleep(0.2)
并且計數CURSOR_UP_ONE取決于字串的長度和終端視窗的寬度。
uj5u.com熱心網友回復:
可以提前獲取終端尺寸:
from shutil import get_terminal_size
def print_width(s: str):
tw, th = get_terminal_size((50, 20))
if len(s) > tw:
head, tail = s[:tw], s[tw:]
print(head)
else:
print(s)
if __name__ == "__main__":
my_really_long_str = "timesjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj"
print_width(my_really_long_str)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/430346.html
