ループによる繰り返し処理に時間を要する場合,処理の進捗状況を確認できるようにすると便利でしょう.Python で進捗バー(プログレスバー)を表示するには tqdm が便利です.進捗バーを利用するにはプログラムの先頭で tqdm をインポートします.
from tqdm import tqdm
例えば,10万個のランダムサンプルを100回生成する処理を実行します.このとき,次のとおり tqdm() を利用すると進捗バーを表示できます.
import random
for i in tqdm(range(100)):
scores = random.sample(range(1, 1_000_000), 100_000)
47%|███████████████████▋ | 47/100 [00:02<00:02, 21.40it/s]
100%|█████████████████████████████████████████| 100/100 [00:04<00:00, 20.71it/s]
進捗バーの出力全体について文字数を指定することも可能です.例えば ncols=50 オプションを追加すると,全体で50文字分の進捗バーが表示されます.
for i in tqdm(range(100), ncols=50):
scores = random.sample(range(1, 1_000_000), 100_000)
100%|███████████| 100/100 [00:04<00:00, 21.32it/s]
処理に相当な時間を要し進捗バーがなかなか進まないような場合は,ascii=True オプションを利用すると良いでしょう.次の場合,'123456789#' の順番で変化していきます.
for i in tqdm(range(1_000), ascii=True):
scores = random.sample(range(1, 1_000_000), 100_000)
41%|################2 | 407/1000 [00:19<00:29, 20.05it/s]
83%|#################################1 | 830/1000 [00:39<00:08, 21.09it/s]
100%|#######################################| 1000/1000 [00:48<00:00, 20.76it/s]