Pythonで定期実行する方法

python
記事内に広告が含まれています。

Pythonは、シンプルなコードと豊富なライブラリで、さまざまな業務を自動化するのに役立ちます。

その中でも、特定のタスクを定期的に実行することは、多くのビジネスシーンで役立ちます。

この記事では、Pythonで定期実行するための基本的な手法と、具体的な使い方について解説します。

DMM WEBCAMP
  • 未経験者向けプログラミングスクール
  • 現役エンジニアがしっかりサポート
  • 卒業後も安心の転職・副業サポート

定期実行に便利なライブラリ

Pythonで定期実行を簡単に行うには、いくつかのライブラリが非常に便利です。

その中でも、scheduleライブラリは最もポピュラーで、タスクの自動化を簡単に実現できます。

このライブラリを使えば、数行のコードで指定したタイミングでタスクを自動的に実行することが可能です。

まずは、scheduleライブラリをインストールしてみましょう。

scheduleライブラリのインストール

Pythonで定期実行を行う際には、まずライブラリのインストールが必要です。

以下のコマンドを使用して、簡単にインストールできます。

pip install schedule

これで、scheduleライブラリを使った定期実行の準備が整いました。

基本的な使い方

scheduleライブラリを使うことで、特定のタイミングで関数を定期的に実行することができます。

import schedule
import time

def job():
    print("定期実行されています")

schedule.every(10).seconds.do(job)

while True:
    schedule.run_pending()
    time.sleep(1)

このコードは、10秒ごとに「定期実行されています」というメッセージを表示します。

複数のタスクをスケジュールする

scheduleライブラリでは、複数のタスクを同時にスケジュールすることも可能です。

以下の例では、毎秒と毎分に異なるタスクを実行します。

import schedule
import time

def task1():
    print("毎秒実行")

def task2():
    print("毎分実行")

schedule.every(1).second.do(task1)
schedule.every(1).minute.do(task2)

while True:
    schedule.run_pending()
    time.sleep(1)

このコードでは、1秒ごとと1分ごとにそれぞれ異なるタスクが実行されます。

CodeCamp
  • 現役エンジニアからスキルを学べる
  • 満足度は驚異の97.4%
  • 300社以上のIT企業で研修に導入
  • 毎日9時〜21時まで、無料カウンセリングを開催中!

cronとPythonでの定期実行

Pythonでは、cronと呼ばれるツールを使って定期的なタスク実行を行うことも可能です。

特にUnix系のシステムでは、cronが標準でインストールされており、簡単にスケジューリングができます。

次に、cronを使った定期実行の基本的な設定方法について紹介します。

cronの基本設定

まず、ターミナルで以下のコマンドを入力してcronの設定を行います。

crontab -e

次に、実行したいPythonスクリプトを指定し、実行タイミングを設定します。

Pythonスクリプトをcronで定期実行

以下のように、Pythonスクリプトを毎日定期的に実行する設定を行います。

0 5 * * * /usr/bin/python3 /path/to/script.py

この設定は、毎朝5時にPythonスクリプトを実行することを意味します。

crontabの確認方法

設定が完了したら、以下のコマンドで確認できます。

crontab -l

これにより、現在の設定内容を表示し、タスクが正しく登録されているか確認します。

【リモートワークには必須】
キャリアに合わせてお得に光回線を利用しよう
ドコモ光
開通後、最短一ヶ月で35,000円のキャッシュバック!
 
auひかり
難しい条件一切なしで、最大12,7000円のキャッシュバック!
 
ソフトバンク光
高額キャッシュバックや豪華特典をお届け!

Windowsタスクスケジューラで定期実行

Windows環境でも定期実行は可能です。タスクスケジューラを使用することで、定期的なタスク実行ができます。

次に、Windowsタスクスケジューラを使用したPythonスクリプトの定期実行について説明します。

タスクスケジューラの設定方法

まず、「タスクスケジューラ」を開き、新しいタスクを作成します。

次に、「トリガー」を設定し、実行タイミングを指定します。

最後に、Pythonスクリプトのパスを指定し、実行させることができます。

Pythonスクリプトを指定する

タスクスケジューラでは、次のようにPythonスクリプトを指定して実行できます。

C:\Python39\python.exe C:\path\to\script.py

これで、設定された時間にPythonスクリプトが実行されるようになります。

タスクの確認と管理

作成したタスクの管理は、タスクスケジューラで行います。

スケジュールされたタスクが正しく動作しているかを確認し、必要に応じて修正や削除を行います。

プログラミングスクール受講時には教育訓練給付制度を利用することで、受講料の最大80%の給付を受けることが可能です。

Pythonでのカスタム定期実行システムの構築

Pythonを使用して、独自の定期実行システムを構築することも可能です。

以下の方法では、スクリプトの中でカスタマイズした時間間隔や条件に基づいて処理を行うことができます。

このセクションでは、カスタム定期実行システムの構築方法について説明します。

時間間隔でのループ処理

Pythonでは、timeモジュールを使用してループ処理を行い、一定時間ごとに処理を実行できます。

import time

def custom_task():
    print("カスタムタスクが実行されました")

while True:
    custom_task()
    time.sleep(60)  # 60秒間隔で実行

このコードは、60秒ごとにcustom_taskを実行します。

条件に基づく定期実行

特定の条件に基づいて処理を実行する方法もあります。

以下のコードでは、曜日や時刻に基づいてタスクを実行します。

import time
from datetime import datetime

def conditional_task():
    if datetime.now().weekday() == 0:  # 月曜日に実行
        print("月曜日のタスクが実行されました")

while True:
    conditional_task()
    time.sleep(3600)  # 1時間ごとに確認

このコードは、毎週月曜日に特定のタスクを実行します。

外部APIを使用した定期実行

外部APIを定期的に呼び出してデータを取得し、自動処理を行うシステムも構築できます。

import requests
import time

def fetch_data():
    response = requests.get("https://api.example.com/data")
    if response.status

_code == 200:
        print("データを取得しました:", response.json())

while True:
    fetch_data()
    time.sleep(300)  # 5分ごとにデータを取得

このコードは、5分ごとにAPIからデータを取得し、結果を表示します。

techgym
  • 20000人が学んだpythonの教材
  • 正しい情報をまとめて入手
  • 様々なゲームを作成しながら楽しくpythonが身に付く
  • 自主学習派はこれ一択!

今なら1年間有効なzoomサポート付き!

まとめ: Pythonでの定期実行の効果的な活用法

Pythonを使った定期実行は、業務の自動化や効率化に大いに役立ちます。

scheduleライブラリやcron、Windowsタスクスケジューラを使うことで、簡単にタスクのスケジュールを設定することができます。

また、条件や時間間隔を細かく設定することで、さらに柔軟な自動化を実現できます。

ぜひ、この記事を参考にして、Pythonを活用した定期実行システムを構築してみてください。

【給付金が受けられる】おすすめプログラミングスクール!
  • DMM WEBCAMP
    転職成功率98%&離職率2.3%
    転職できなければ全額返金DMM.comグループならで非公開求人も多数
  • テックアカデミー
    【転職保証】受講生の100%が内定獲得!9割以上が未経験からスタート!LINEヤフー監修&万全サポート
  • Aidemy Premium
    【給付金利用の相談歓迎】AI・データ分析学ぶならAidemy Premium
  • ウズウズカレッジ
    初心者・文系出身者でもOK、IT未経験からの専門的な就業サポート

コメント

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