如何在同一螢幕行顯示動態輸出
在某些情況下,需要用新資料取代目前控制台輸出,而不是而不是附加它。常見的方法是利用回車符('r')回到目前行的開頭:
簡單版本:
for x in range(10): print(x, end='\r') print()
透過以「r 」結束每個列印語句,遊標將返回到行的開頭,而不前進到下一行。這允許後續的列印語句覆蓋先前的輸出。
行清理:
如果新輸出可能比當前行短,則需要執行額外的步驟清除剩餘字元:
for x in range(75): print('*' * (75 - x), x, end='\x1b[1K\r') print()
轉義序列'x1b[1K'清除從遊標位置到末尾的所有字元
長換行:
對於超過行寬的輸出,可以停用換行以確保連續字元相互覆蓋:
# Disable line wrapping print('\x1b[7l', end='') # Overwrite output for x in range(75): print('*' * (75 - x), x, end='\r') # Re-enable line wrapping print('\x1b[7h', end='') # Advance to next line print()
注意:停用換行後重新啟用換行至關重要,以防止任何錯誤未來控制台輸出的問題。
以上是如何在同一行覆蓋控制台輸出?的詳細內容。更多資訊請關注PHP中文網其他相關文章!