您好,提前感謝您的幫助,事實上我有一個帶有各種選項的進度條,我希望看到重繪 而不是花時間清理控制臺。
while True :
#system("cls")
sys.stdout.write("\rSearching for {} --- [Currently {} found] \nLoading [".format(entry, count_result) "="*int(100 * count / nb_files) " "*(100-int(100 * count / nb_files)) "] {}%".format(int(round(float(int(100 * count / nb_files))))) "\n")
sys.stdout.flush()
sleep(0.5)
if int(100 * count / nb_files) == 100 :
sleep(1)
system("cls")
break
所以我很想知道是否有辦法,我四處尋找試圖理解,但我不明白在我的情況下如何做到這一點。提前致謝
uj5u.com熱心網友回復:
“重繪 ”進度條的最簡單方法是列印不帶LF( \n) 新符號的行。相反,您只需CR( \r) 回車符。使用這種方法游標將回傳到同一行并重寫它
import sys
import time
for i in range(100):
print("Progress: {}% ".format(i), end="\r")
time.sleep(.1)
這種方法的主要缺點是它留下了上一行的符號。你可以通過這個例子看到它。
import sys
import time
for i in range(100):
print("Progress: {}% ".format(i), end="\r")
time.sleep(.5)
print("short line", end="\r")
time.sleep(.5)
所以,你也應該在寫新的之前清理線路
import sys
import time
for i in range(100):
print(" ", end="\r")
print("Progress: {}% ".format(i), end="\r")
time.sleep(.1)
這里有更多關于 CR 和 LF 符號的資訊什么是回車、換行和換頁?
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/392881.html
