Python

Pythonで処理を一定時間待たせる「sleep」の使い方

Pythonで処理を一定時間待たせる「sleep」の使い方

Pythonで処理を待たせたい。


処理を待たせたい場合なんてあるの?
ありますよー
スクレイピングやAPIでデータ取得する際に、単位時間のアクセス数に制約があるような場合は処理を待たせたりします


そんな場合に使えるのがtimeモジュールの sleep() メソッド。

今回は sleep() メソッドの使い方を紹介する。

ミリ秒単位で待たせる方法についても紹介する。

この記事を書いている人


システムエンジニア、AIエンジニアと、IT業界で10年以上働いている中堅。PythonとSQLが得意。最近GCPを色々と習得中。

記事を読むメリット

Pythonで処理を一定時間待たせる「sleep」の使い方がわかる


Pythonで処理を一定時間待たせる「sleep」の使い方

Pythonで処理を一定時間待たせるには time モジュールの sleep() メソッドを使う。

time.sleep(secs)
与えられた秒数の間、呼び出したスレッドの実行を停止します。

参考:time --- 時刻データへのアクセスと変換 — Python 3.9.1rc1 ドキュメント

使い方としては以下の通り。

import datetime
import time

# Now
dt_now = datetime.datetime.now()
print(dt_now)
# 2020-12-06 17:53:15.298606

for i in range(5):
    time.sleep(1)
    print(datetime.datetime.now())

# 2020-12-06 17:53:16.299756
# 2020-12-06 17:53:17.300467
# 2020-12-06 17:53:18.301216
# 2020-12-06 17:53:19.301540
# 2020-12-06 17:53:20.301975


time.sleep(1)1回実行するごとに約1秒待っているのがわかる。



ミリ秒単位でsleepさせる方法

sleep() が秒単位であるなら、もっと小さいミリ秒単位でsleepさせたい場合はどうすればいいのか。

答えは簡単で time.sleep(0.001) とすれば良い。

for i in range(5):
    time.sleep(0.001)
    print(datetime.datetime.now())

# 2020-12-06 18:11:52.367644
# 2020-12-06 18:11:52.369629
# 2020-12-06 18:11:52.371647
# 2020-12-06 18:11:52.373623
# 2020-12-06 18:11:52.374624


ただ結果を見るとわかるように、ミリ秒単位でsleepしても他の処理時間の影響を受けるのできっちり1ミリ秒後にはならない

ほぼ1ミリ秒と考えておこう。



まとめ

Pythonで処理を一定時間待たせるには time モジュールの sleep() メソッドを使う。

time.sleep(1) なら約1秒間処理が停止する。
time.sleep(0.001) なら約1ミリ秒間のスリープとなる。



他にもPythonで現在時刻を取得する方法時間を足し算引き算をする方法の記事もあるので、もし気になったら見て欲しい。

ITipsと同じようなブログを作る方法

ブログに興味がありますか?

もしブログに興味がある場合は↓このページ↓を参考にすれば、ITipsと同じ構成でブログを作ることができます

サーバー、ドメイン、ASPと【ブログに必要なものは全て】このページに書きました。
同じ構成でブログ作るのはいいけど、記事はマネしないでネ (TДT;)

ランキング参加中

にほんブログ村 IT技術ブログへ

他にもブログやSNSで紹介してくれると励みになります。

はてブのコメントで酷評されると泣きます(´;ω;`)

-Python
-

© 2024 ITips