Python Recipe - 土炮 loader (spinner)
Posted on Nov 24, 2016 in Python 程式設計 - 初階 by Amo Chen ‐ 1 min read
之前一直覺得 npm 安裝套件時的 loader 很有趣,便想用 Python 也做一個看看。
其實用 sys.stdout.write()
搭配 \r
就可以做出 loader 。
sys.stdout.write()
跟 sys.stdout.flush()
用來輸出字串到螢幕,而 \r
則是可以將列印的位置回到行首,這樣就可以在列印時覆蓋上一次列印的字,達到動畫的效果。
範例如下:
# -*- coding: utf-8 -*-
import sys
from time import sleep
def infinite_loader():
symbols = ('⇕', '⇗', '⇔', '⇘', '⇕', '⇙', '⇔', '⇖')
i = 0
while True:
sys.stdout.write('\r{}'.format(symbols[i % 8]))
sys.stdout.flush()
i += 1
sleep(0.2)
if __name__ == '__main__':
infinite_loader()
執行成功的話,就可以看到小箭頭在轉轉轉了!