覆蓋同一行上以前的列印輸出
在程式設計中,經常會遇到需要更新顯示在上的現有值的情況標準輸出(stdout)而不添加換行符。考慮以下 Python 程式碼:
for x in range(10): print(x)
此程式碼在不同的行上輸出數字 1 到 10。要覆寫先前的值並將其替換為同一行上的新值,您可以使用以下技術:
簡單版本:
利用回車符( ' r') 字元回到行的開頭而不前進到下一行。
Python 3:
for x in range(10): print(x, end='\r') print()
Python 2.7 向前相容:
Python 2.0-2.6:
for x in range(10): print '{}\r'.format(x), print
在這些範例中,列印語句後面的隨行符會抑制換行符。最終的列印語句前進到下一行,確保您的提示不會覆寫您的輸出。
for x in range(10): print '{0}\r'.format(x), print
行清理:
如果您無法保證新行文字不短於現有行,您可以使用「清除到行尾」轉義序列'x1b[ 1K' ('x1b' = ESC):
長換行:for x in range(75): print('*' * (75 - x), x, end='\x1b[1K\r') print()
上述方法假設您的書寫沒有超出行長。回車僅返回到目前行的開頭。因此,如果您的輸出超過行長度,則只會刪除最後一行。
要緩解此問題並防止遊標換行到下一行,您可以停用換行:請注意,您必須在程式碼區塊末尾手動重新啟用換行,以避免使終端處於損壞狀態。
以上是如何在 Python 中的同一行上覆蓋先前的列印輸出?的詳細內容。更多資訊請關注PHP中文網其他相關文章!