首頁 > 後端開發 > Python教學 > 如何在 Python 中的同一行上覆蓋先前的列印輸出?

如何在 Python 中的同一行上覆蓋先前的列印輸出?

Susan Sarandon
發布: 2024-12-08 18:20:11
原創
369 人瀏覽過

How Can I Overwrite Previous Print Outputs on the Same Line in Python?

覆蓋同一行上以前的列印輸出

在程式設計中,經常會遇到需要更新顯示在上的現有值的情況標準輸出(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 向前相容:

from __future__ import print_function for x in range(10): print(x, end='\r') print()

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中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板