python實現控制台的進度條功能


整理利用python實現控制台進度條功能

進度條必須所有字符全部在同一行,且動態顯示。

由於print語句打印末尾會\n換行,而且一旦被print之后,也無法進行修改。因此我們無法使用print完成這個功能。

我們會使用sys庫的sys.stdout.write()函數,這個函數會在控制台輸出這個字符串的同時,不加結尾。通過sys.stdout.flush()函數把輸出暫時打印在控制台中。使用“\r”轉義字符(回到行首)。

1 for i in range(101):
2     s1 = "\r[%s%s]%d%%"%("*"*i," "*(100-i),i)
3     sys.stdout.write(s1)
4     sys.stdout.flush()
5     time.sleep(0.3)
1 [************************************************            ]63%

注意:睡眠的時間最好設置為0.3及其以上,不然刷新太快,會出現不當的顯示。

也可以把數字顯示放在最開頭:

1 for i in range(101):
2     s1 = "\r%d%%[%s%s]"%(i,"*"*i," "*(100-i))
3     sys.stdout.write(s1)
4     sys.stdout.flush()
5     time.sleep(0.3)
1 18%[******************                                                       ]

 


免責聲明!

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



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