在許多程式設計場景中,需要修改或更新終端上顯示的輸出。本文探討了將先前的列印內容覆蓋到 stdout 的方法,並用同一行上的更新值取代它。
Python 提供r(回車)字元將遊標移回目前行的開頭,而不前進到下一行。透過使用r,您可以覆寫先前的列印語句:
# Python 3 for x in range(10): print(x, end='\r') print() # Python 2.7 from __future__ import print_function for x in range(10): print(x, end='\r') print()
在Python 2 中,逗號位於print 語句的末尾阻止它前進到下一行,從而允許覆蓋:
# Python 2 for x in range(10): print '{0}\r'.format(x), print
當新的文字行比前一行短時,您可以使用x1b[1K(清除到行尾)來清除剩餘的字元:
for x in range(75): print('*' * (75 - x), x, end='\x1b[1K\r') print()
預設情況下,Python 會對超出終端寬度的行進行換行。為了防止這種情況並確保連續的字元覆蓋前一行,請使用x1b[7l:
print('\x1b[7l', end='') # Disable line wrapping for x in range(50): print(x, end='\r') print('\x1b[7h', end='') # Re-enable line wrapping
停用換行,注意: 停用換行後始終重新啟用換行以避免離開終端處於損壞狀態。
以上是如何在 Python 中將先前的輸出覆蓋為標準輸出 (Stdout)?的詳細內容。更多資訊請關注PHP中文網其他相關文章!