コンテンツへスキップ

PythonライブラリノックDay024 標準ライブラリ #プログラミング #python #library

Pythonのライブラリの紹介です。それぞれの説明と使用例は以下になります。

L 070. logging.handlers(ログのハンドリング)
logging.handlers は、logging モジュールの補助で、ログをファイルにローテート保存したり、ネットワーク送信したりする機能を持ちます。
長期間稼働するアプリでは必須級。

▼主な用途
ログを一定サイズ・期間ごとに分割して保存
ログをリモートサーバへ送信(メール、SysLog など)
アプリケーションの運用監視

▼サンプル:ログファイルの自動ローテート
import logging
from logging.handlers import RotatingFileHandler

logger = logging.getLogger(‘my_logger’)
logger.setLevel(logging.INFO)

handler = RotatingFileHandler(‘app.log’, maxBytes=1024, backupCount=3)
logger.addHandler(handler)

logger.info(‘これはログのサンプルです’)

# maxBytes: ファイルサイズ上限(バイト)
# backupCount: 保持するバックアップ数

▼他の便利なハンドラ:
SMTPHandler: メール通知
SysLogHandler: syslog 送信
TimedRotatingFileHandler: 毎日 or 毎時間 ローテート保存

L 071. subprocess(外部プロセスの実行)
subprocess は、外部のコマンドやプログラムをPythonから実行するためのモジュールです。
旧式の os.system() に比べて強力・安全・双方向通信も可能。

▼主な用途
シェルコマンドをPythonから実行(例:ls, ffmpeg, git)
外部スクリプトやアプリの起動
出力やエラー結果をキャプチャ

▼サンプル:コマンドの実行と出力取得
import subprocess

result = subprocess.run([‘echo’, ‘Hello subprocess’], capture_output=True, text=True)
print(result.stdout) # => Hello subprocess

▼ 出力を取り込んで処理する
output = subprocess.check_output([‘ls’, ‘-l’], text=True)
print(output)

▼シェルを使う(危険な場合あり)
subprocess.run(“echo Hello && date”, shell=True)
# shell=True を使うときは ユーザー入力を直接渡さないこと(セキュリティリスク)

L 072. sched(スケジューリングタスクの実行)
sched は、特定の時間に関数を実行するための簡易スケジューリングライブラリです。
シンプルですが柔軟なスケジューリングができます。

▼主な用途
処理の遅延実行
簡易的なジョブスケジューラ
イベント順序の制御(ゲーム、シミュレーションなど)

▼サンプル:数秒後に関数を実行
import sched
import time

scheduler = sched.scheduler(time.time, time.sleep)

def greet(name):
print(f’こんにちは、{name}さん!’)

scheduler.enter(5, 1, greet, argument=(‘太郎’,))
scheduler.run()

# enter(delay, priority, func, argument=()): delay 秒後に func を呼び出す
# run() を呼ばないとスケジュールは開始しません

Facebooktwittermail

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA