サイトアイコン ITC Media

【初心者向け】Pythonでタイマー機能を実装する方法とその活用例

(最終更新月: 2025年07月19日)

✓当記事はこんな方におすすめです

「Pythonでタイマー機能をサクッと実装したい」

「具体的なタイマーの作成方法を、実例とともに知りたい」

「実用的なタイマーの応用例やスケジュール、音の再生なども学びたい」

✓当記事で理解できること

本記事では、未経験者・初学者向けに、Pythonでタイマーを作るための基礎から実例、応用的な使い方まで分かりやすく解説します。実際に現場でも使えるテクニックや、「失敗しやすいポイント」についても手厚くフォローしています。ぜひ最後までご覧ください。

それでは、一緒に見ていきましょう。

運営者プロフィール

現在はIT企業のプロダクトマネージャーとして、個人向け/社内向けシステムなど、複数のシステム開発・運営に携わっています。

Webサイト構築やECサイトの開発経験に加えて、PythonなどのプログラミングやSalesforceなどのクラウドアプリケーションに関する幅広い知識・経験を活かして「プログラミング初心者がスムーズに学べるサイト」を目指しています。

Githubでは、趣味で作成したアプリなどを公開しています。

https://github.com/Yulikepython/

✔人に見せても恥ずかしくないコードを書こう

「リーダブルコード」は、わかりやすく良いコードの定義を教えてくれる本です。

  • 見るからにきれいなコードの書き方
  • コードの分割方法
  • 変数や関数の命名規則

エンジニアのスタンダートとすべき基準を一から解説しています。

何回も読むのに値する本なので、ぜひ手にとって読んでみてください。

Pythonのタイマー機能とは?概要と必要性

このセクションでは、Pythonで使う「タイマー」機能について基本から説明します。

多くの業務・学習シーンでは、「数秒後に自動で処理を実行したい」「スケジュールや時間の監視をしたい」などのニーズがよく生まれます。タイマーは、これらを実現する重要ツールです。

タイマー機能が活躍するシチュエーション

タイマーは、ウェブアプリや自動化スクリプトの中で非常に役立ちます。

例えば、「一定時間ごとにデータを取得する」「ユーザーの入力が一定時間なければ自動で画面を閉じる」といった場面です。

実際、未経験で転職後に現場に入った際、バッチ処理や自動テストのタイミング管理でタイマーが出てきて困った経験もありました。

こうした機能をPythonで気軽に実装できると、業務効率やシステムの品質向上につながります。

なぜPythonでタイマーを実装するのか

Pythonはシンプルで学びやすく、タイマーの実装も初心者にやさしい言語です。

threading、timeなど、標準ライブラリだけで多様なタイマー機能が実現できます。

「Pythonでちょっと試してみたくなる」のがこの技術の魅力ですが、基本と便利な応用例を知っているかどうかで、圧倒的にプログラムの幅が広がるのも事実です。

Pythonのタイマー機能は幅広いシーンで活かせるので、基礎から押さえておくと得をします。

Pythonのタイマーでできること

タイマーを使うことで、以下のようなことが簡単にできます。

・処理時間の測定
・一定時間後に関数を自動実行
・定期的なスケジューリング
・「何も操作がなければ自動ログアウト」などの管理機能

「入力待ちとタイマーの併用」「音を鳴らす」といった日常的なニーズにも応用できます。

機能の幅は驚くほど広いので、実例を使って一つずつ解説していきます!

Pythonでタイマーを実装する基本手順

このセクションでは、タイマー機能をPythonで実装するストレートな流れを説明します。

タイマーを使った自動処理の基礎を身につけると、後述する応用例への展開もスムーズになります。

threading.Timerによるシンプルなタイマー

Python標準のthreadingモジュールにはTimerクラスがあり、これが一番シンプルなタイマー機能です。

指定した秒数後に関数を一度だけ自動で実行してくれます。

例えば5秒後に「Hello, World!」と表示したい場合、次のように書きます。

コードはとても直感的なので、まずは動かしてみましょう。

from threading import Timer

def hello():
    print("Hello, World!")

# 5秒後にhello関数を呼び出す
my_timer = Timer(5.0, hello)
my_timer.start()

timeモジュールでの時間測定とスケジュール

「何秒か待って繰り返し処理したい」「今の時間を表示したい」ときは、timeモジュールが便利です。

繰り返し処理の基本技として下記のようなスクリプトがよく使われます。

10秒ごとに現在時刻を表示したい場合はこのように書きます。

この方法は覚えておくと、ログ監視や自動バックアップなど様々な応用が効きます。

import time

while True:
    print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
    time.sleep(10)

処理時間の計測に使えるテクニック

処理の速さを測定したいときには、startとendのタイミングでtime.time()を使うのがおすすめです。

現場で大量データを処理するバッチ作業の「どこがボトルネック?」を調べるときなどにも役立ちます。

下記の例のように、最初と最後で時刻を記録し、差分を出すやり方が定番です。

このテクニックはボトルネック調査や学習工程の進行確認など多用途に応用可能です。

import time

start = time.time()
# 実験的な処理。ここでは1秒待つだけ。
time.sleep(1)
end = time.time()
print(f"経過時間: {end - start}秒")

応用!ユーザー入力や自動制御と併用するタイマー

このセクションでは、タイマーとユーザー入力、または自動的な操作制御を組み合わせる方法を詳しく解説します。

日常的な業務・アプリで「ほしい!」と感じる機能が載っています。

マルチスレッドでタイマー中にもユーザー入力を受け付ける

タイマーが進行する裏でinput()を待ちたい場合は、threading.Threadを使います。

これなら「タイマー動作中にもユーザーからの反応がすぐ受け取れる」状態にできます。

ちょっと複雑そうに感じますが、下記のスクリプトを試せば「なるほど!」と実感できます。

仕組みを覚えると、チャットアプリや通知システムなど幅広い分野で役立つ手法です。

import threading
import time

def input_thread(result):
    result.append(input("ユーザー入力: "))

result = []
thread = threading.Thread(target=input_thread, args=(result,))
thread.daemon = True
thread.start()

while True:
    if result:
        print(f"受け取った入力: {result[0]}")
        break
    print("タイマー起動中...")
    time.sleep(1)

ユーザー入力や命令でタイマー処理を一時停止/再開する

「pause(停止)」や「resume(再開)」など、ユーザーのコマンドで動作を変更したい場面もあります。

このような場合も、スレッドとフラグの組み合わせで直感的に作成できます。

特に現場では「一時停止」「リセット」「再開」など高頻度で要望が出るため、基本だけでも知っておくと重宝します。

下記のコードを使えば、あなた独自のタイマーアプリや学習支援ツールも作れます。

import threading
import time

def input_thread(commands):
    while True:
        command = input()
        commands.append(command)

commands = []
thread = threading.Thread(target=input_thread, args=(commands,))
thread.daemon = True
thread.start()

pause = False
while True:
    if commands:
        command = commands.pop(0)
        if command == "pause":
            pause = True
        elif command == "resume":
            pause = False

    if not pause:
        print("タイマー起動中...")
    time.sleep(1)

「一定時間操作がなければ自動ログアウト」を実装する

セキュリティや業務現場で「無操作時間を監視し、自動でセッションを切る」という処理もよく使われます。

inputスレッドで最終操作時刻を記録し、一定時間を過ぎたらメインスレッドで判定→自動ログアウト。たったこれだけのロジックです。

手動で試せば、応用力も一気にアップします。

未経験の現場配属時に「どこかで見たことある!」と役立つ必須パターンです。

import threading
import time

def input_thread(last_input_time):
    while True:
        input("何か入力してください: ")
        last_input_time[0] = time.time()

last_input_time = [time.time()]
thread = threading.Thread(target=input_thread, args=(last_input_time,))
thread.daemon = True
thread.start()

TIMEOUT = 10  # 10秒で自動ログアウト
while True:
    current_time = time.time()
    if current_time - last_input_time[0] > TIMEOUT:
        print("一定時間操作がなかったため、ログアウトします。")
        break
    time.sleep(1)

タイマーで音を鳴らす(アラームなど)方法

タイマーと組み合わせて「時間が来たら音で通知したい」という場合、Pythonではいくつかの方法があります。

勉強や作業支援ツールづくり、家庭アプリでも応用しやすいです。

Windowsならwinsoundでビープ音

Windows環境なら、標準モジュールwinsoundで手軽にビープ音を鳴らせます。

周波数や長さを指定可能で、例のような1秒間の通知音も一行でOKです。

LinuxやMacでは未対応なので、その場合は次項のやり方にご注目ください。

ビープで良いなら、とにかく一番シンプルなサンプルです。

import winsound

winsound.Beep(1000, 1000)  # 1000Hz, 1秒鳴らす

pygameでMP3やWAVファイルを再生

「好きな音声ファイルをアラーム音として流したい」場合、pygameが非常に便利です。

pipでインストールし(macos/linux/windows共通)、短いコードで音声を再生できます。

pygameの細かな使い方はドキュメント(公式サイト)でも解説されています。

通知やアプリ制作時のおしゃれなサウンド再生ならこれ一択です。

from pygame import mixer

mixer.init()
mixer.music.load("alarm_sound.mp3")   # 任意の音声ファイルを指定
mixer.music.play()

Pythonで音を鳴らす際の注意点

ビープ音と違い、音声ファイルを使う場合はファイルのパスミスや対応フォーマットに注意しましょう。

また、play()した直後にスクリプトが終了すると音も途中で止まるため、ファイルの長さ分sleepなどで待つ処理を追加すると安心です。

pygameは依存関係でインストールがうまくいかないこともあるので、トラブル時はpip install pygameを新たに試してください。

初心者がつまずきやすいポイントなので、検証しながら少しずつ練習しましょう。

高度なタイマー制御!Timerクラスでのスケジューリング応用

このセクションでは、少し進んだタイマー制御や、終了時刻指定など実践的な作りこみ方法を紹介します。

業務システムのバッチ制御やタスク管理でも活用頻度が高いです。

Timerで特定の時刻までカウントダウン

datetimeとTimerを組み合わせると「〇分後まで待つ」「指定時刻が来たらアクション」も簡単に実現できます。

例えば「今から5分後まで監視→時間が来たら終了」など、業務自動化にもそのまま利用可能です。

基本の流れを下の例でつかみ、必要に応じて関数や終了条件を拡張できます。

from datetime import datetime, timedelta
from threading import Timer

end_time = datetime.now() + timedelta(minutes=5)

def check_time():
    if datetime.now() >= end_time:
        print("Time is up!")
    else:
        Timer(1, check_time).start()

check_time()

複数処理のスケジュール管理応用例

Timerやtime.sleepを組み合わせれば、「複数の処理をそれぞれ異なるタイミングで実行する」ことも可能です。

例えば、「3分ごとにデータ保存、5分ごとにレポート通知」といった並行処理も、各Timerを作成してstart()するだけです。

こうした設計のコツやトラブル対応は、Pythonのコードを待機させる具体的な方法を一から解説 の記事も参考になります。

複数タスクの管理は現場スクリプト作成で絶対に出てくるので、覚えると大きな武器になります。

現場でも役立つタイマー設計のコツ

Timerやtime.sleepの連携処理では「例外時」「強制終了時」のハンドリングも重要です。

try-exceptを多用し、エラーに備えたり、Timerのキャンセル機能(cancel())を活用することで安定動作が得られます。

また、終了後に何をするかなど「後片付け処理」も付けておくことをおすすめします。

シンプルな仕組みほど、例外対応や設計思想があとで効いてきます。

まとめ

本記事では、Pythonによるタイマー機能の基礎から応用まで徹底解説しました。

特に重要なのは:

これらを組み合わせることで、現場で必要な自動化や管理ツール、学習支援アプリも自在に作れる力が身につきます。

タイマー技術を実際の仕事や学習に役立てたい方は、さらに関連するPythonのコードを待機させる具体的な方法Pythonのインストール方法も併せてぜひご覧ください。

より幅広いスキルアップには、コスパ抜群なクラウド環境 DigitalOcean の活用もおすすめです。

基礎を固めて、自分だけの自動化ツールをどんどん生み出してみてください!

モバイルバージョンを終了