python \r與\b的應用、光標的含義


參考鏈接:https://www.jianshu.com/p/eb5c23cd6e34

\r 能將光標定位到當前行的行首

\b則是將光標回退一位

光標的含義:

光標后面的輸出內容均會消失,光標回退后,后面位置的內容都會被抹除

print('按下回車開始計時,按下 Ctrl + C 停止計時。')
print('第2行\r',end='mark')#這一行會消失,因為“第2行”輸出后,\r會將光標回退到行首,然后輸出end指定的內容即為“mark”
#注意上面沒有換行符了,默認的end是\n
print('第3行“第三行”不會消失')
print('第3行\r“第3行”會消失')#因為輸出了第三行后,光標回退到行首,即后面的內容“第3行”被抹除了
print('第3行\b“行”會消失')#“\b"回退1位
print('第4行\r')#這個為什么沒有被抹除呢,看下面這一行
print('第4行\ra')#結合輸出結果來看,這個光標移到行首,后面的內容並不是立即被抹除的,而是輸出一位,抹除一位
print('第5行\r')#所以這一行輸出了”第5行“后,光標被移到行首了,然后輸出了默認的end值”\n",但是這樣的話結果中的第5行前不是應該有個空行嗎?

#輸出
lient' '--host' 'localhost' '--port' '5819' 'c:\Users\Administrator.SC-201605202132\Envs\sort\app\forTest.py'
按下回車開始計時,按下 Ctrl + C 停止計時。
mark第3行“第三行”不會消失
“第3行”會消失
第3“行”會消失
第4行
a 4行
第5行

  

*)寫一個輸出進度的

import time


def test():
    for i in range(100):
        time.sleep(0.1)
        print('當前正運行第%d/%d次測試\r'%(i,100),end='')#必須要有這個end,要不沒有用
        print('append content')#而且這一行也不能有,其實也沒必要有,因為如果后面一定有序列輸出的,還不如分多次在附加內容輸出后立即輸出次數序列
if __name__=="__main__":
    test()

  


免責聲明!

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



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