Pythonコマンドラインで、時間のかかる処理をローディング中に見せる
コマンドラインで、時間のかかる処理を行うと、標準出力の見た目上、処理が停止しているのかわからない。
ドットを1秒おきに表示して、フリーズしてないことをアピールするコード。
import sys,time,threading #時間のかかる同期処理 def longFunction(): time.sleep(10) # 時間のかかる処理をスレッドで処理 t = threading.Thread(target=longFunction) t.start() # スレッドが終わるまでループ while True: sys.stdout.write('.') sys.stdout.flush() time.sleep(1) if(not t.isAlive()): # スレッドが終了していたらループを抜ける break print('DONE')
ぱっと見、もっといい方法はいっぱいありそうだったけど、とりあえず、やりたいことができるためのコード。