Pythonのコード実行時間をtimeモジュールで計測して表示する

Pythonのコード処理時間を計測する

timeモジュールのtime関数を使います。
timeモジュールの日本語サイトは ここ です。

でも、time()の戻り値ってfloatで、経過時間の差分を測っても何秒なのかわかりません。

import time
start_time = time.time()
print(type(start_time))
print(start_time)

上のコードを実行すると、このように出力されます。

class 'float'
1631831591.8918436

HH:MM:SS表示に変換

経過時間を分かりやすい形式(HH:MM:SS)で表示するように実装します。

time()の戻り値の単位は [秒] です。

import time

start_time = time.time()

# 65秒待つ
time.sleep(65)

elapsed_time = time.time() - start_time
time_h = int(elapsed_time / (60 * 60))
time_m = int((elapsed_time % (60 * 60)) / 60)
time_s = int(elapsed_time % 60)
print('elapsed time : {0:02}:{1:02}:{2:02} [HH:MM:SS]'
    .format(time_h, time_m, time_s))

上のコードのように、sleep()で65秒の遅延処理を挟むと、以下のように表示されます。

elapsed time : 00:01:05 [HH:MM:SS]

Python3.7からはナノ秒に対応

上の例では [秒] 単位の処理時間計測でしたが、time_ns()を使えば[ナノ秒]でも計測できます。

参考にするサイトは、こちらです。