【python】sleepの使い方やサンプルコードを紹介

スポンサーリンク
Python

本記事ではpythonの

  • sleep関数の用途、役割
  • sleep関数の使い方
  • sleep関数にミリ秒を入れる
  • sleepを使った3つのサンプルコード

を紹介していきます。

pythonの関数の中にsleep関数があります。

すぐ処理を進めるコードなどではこのsleep関数は使用しないため、あまり見かけない関数かもしれません。

そのため、この記事ではsleep関数の用途や役割、実際の使い方などを紹介していきます。

sleep関数の用途、役割

sleep関数の用途、役割について解説していきます。

sleep関数は指定時間の間、処理を停止させる関数です。

そのため、使う用途としては

  • 処理を特定時間だけ停止したい場合
  • 所定の時間まで処理を停止したい場合

などが挙げられます。

例えば、簡単な処理は数秒で終わってしまいますが、どのように動作したかを確認したい場合もあります。

そんな時にsleep関数を入れて、動作を止めつつ欲しい出力が出ているかを確認できます。

また、日付が変わった瞬間や特定の時間に処理を進めたい場合などにも、残りの秒数を算出してsleep関数に入れることで対応ができます。

ただ処理を止めるだけでなく、使い方によっては非常に便利なのがsleep関数です。

sleep関数の使い方

ではsleep関数の使い方を説明します。

import time

time.sleep(秒数)

sleep関数を使う前に、import timeで timeモジュールをimportしてきます。

そのあとにtime.sleep(秒数)を入れればsleep関数が実行できます。

import timeに追加して、sleep()の前にtimeが必要なのも注意です。

sleep関数にミリ秒を入れる

sleep関数にミリ秒を入れていきます。

もともと、sleep関数には引数として入れた数字に単位として秒が入りました。

ではミリ秒単位で入れたい場合は、小数を使います。

例えば、100ミリ秒を入れたい場合は

time.sleep(0.1)

とします。

1000ミリ秒が1秒なので100ミリ秒は0.1秒になります。

10ミリ秒だと

time.sleep(0.01)

になります。

ただし、ここまで短いと実際に止まっているかが人の感覚では分からないため、あまり使うことはないかもしれません。

sleepを使ったサンプルコード

ではsleepを使ったサンプルコードを3つ紹介します。

ループ処理ごとにsleepで停止する

まずは簡単なfor文で、ループ処理ごとに3秒停止させます。

import time

for i in range(3):
    time.sleep(3)
    print(i)

このコードを書くと、実際の動作としては以下のようになります。

動画ではないので、イメージとして受け取ってください。

(3秒停止)
>>0
(3秒停止)
>>1
(3秒停止)
>>2

という感じです。

特定の時間までsleepで停止する

次のサンプルコードとして特定の時間まで停止するコードを紹介します。

1分後や1時間後なら直接秒数を書く方が早いですが

1週間後や2日と8時間後など複雑になると秒への計算がめんどくさいですよね。

そんな時はdatetime.timedeltaを使います。

import time
import datetime

time_during = datetime.timedelta(weeks=1, days=2, hours=8).total_seconds()
time.sleep(time_during)

datetime.timedeltaで設定したい期間を週、日、時間などで設定したあとに、total_seconds()でその期間を秒の単位に変更します。

そしてそれをsleep関数の引数に入れます。

これで特定の時間の間停止します。

特定の日時までsleepで処理を停止する

最後に特定の日時までsleep関数で処理を停止するコードを紹介します。

import time
from datetime import datetime

newyear = datetime.strptime("2022/01/01 00:00", '%Y/%m/%d %H:%M')
time_wait = (newyear - datetime.now()).total_seconds()
time.sleep(time_wait)

datetime.strptimeで特定の日時を入力し、そこから今現在の日時との差分の時間を秒単位にして取得します。

そしてその差分時間をsleep関数に入れれば、特定の日時まで処理を停止します。

このサンプルでは2022年1月1日の00:00:00を指定しています。

現在からその時間までの秒数を算出してsleepの引数としています。

最後に

以上でsleep関数の用途や使い方、そのサンプルコードの説明を終わります。

普段あまり使わないsleep関数ですが、便利で応用がききます。

使う際にはその良さを実感してください。

以上です。

タイトルとURLをコピーしました