Python2.7用sys.stdout.write實現打印刷新(多個print顯示在一行)


如何能在控制台實現在一行中顯示進度的信息呢,就像使用pip安裝時的進度那樣。

如果用print則會打印成多行,下面這個小技巧可以在一行中打印: 

import time
import sys

if __name__ == "__main__":
    for i in range(1,101):
        sys.stdout.write('\r{}>{}%'.format('='*(i/10), i))
        time.sleep(0.1)
        sys.stdout.flush()

其關鍵就在於使用'\r'這個轉義字符(回到行首),sys.stdout.write首先打印這一行后不帶任何結尾,使用了轉義字符"\r"使得光標回到行首,再把緩沖區顯示出來,就得到了我們所需要的效果。

效果如下動圖:

另外這里有一個別人寫的進度的第三方庫:https://pypi.python.org/pypi/progressbar2

 

---------------------------------------------------------------------------------

關注微信公眾號即可在手機上查閱,並可接收更多測試分享~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM