読者です 読者をやめる 読者になる 読者になる

BlogIsHowMuch

鑑賞した作品のレビューやプログラミング系のネタをダラダラ書いていくだけのブログ

python3でローディング中に棒を回す

プログラミング

 ブラッディマンデイの作中に出てきたローディング中のグルグル文字を表現できないかと思い、「python ローディング 回る」で検索したところ大量の関連記事が見つかって驚きました。(こんなザックリした検索で引っかかると思わなかった笑)

f:id:HowMuch:20160217122150g:plain

表現方法

 "\r"は行の一文字目を示します。これと最後の改行文字を削除する工夫をすることで行を増やすことなく、その場で行を更新することができます。

 多くの人が次の方法で文字列の更新を行っているようですが、

 import sys
 sys.stdout.write("\r{0}".format(LOADING_CHAR[i%4]))
 sys.stdout.flush()

 python3では次の方法で一行で更新することができます。

 print("\r{0}".format(LOADING_CHAR[i%4]), end="")

結果

 threadやwith構文を組み合わせれば、他の処理中にローディング文字列をコマンドラインに表示することもできます。
HMlib/loading.py at master · howmuch515/HMlib · GitHub

 あんまり使い道ないな...。