【Python】エラー発生時にベル音を鳴らす方法【クロスプラットフォーム対応】
Pythonのエラー処理において、ユーザーに視覚だけでなく音でも通知したい場合があります。この記事では、エラー発生時にベル音を鳴らし、キー入力があればそのベル音を停止する方法を、WindowsとLinux(macOS含む)両方で動作する形で解説します。
実装のポイント
クロスプラットフォーム対応
Windowsの場合はmsvcrt
を、Linux/macOSの場合はselect
モジュールを使用し、標準入力からのキー入力を非ブロッキングで監視します。ベル音の出力
print("\a")
を使用してASCIIベル文字を出力。ターミナルやシステム設定によっては音が鳴らない場合があるため、環境の設定も確認しましょう。シンプルな関数化
ベル音を鳴らす処理を関数beep_until_key()
にまとめることで、再利用性の高いコードにしています。
コード解説
以下は、エラー発生後に2秒ごとにベル音を鳴らし、キー入力で停止する処理を関数化したサンプルコードです。
|
|
コードのポイント
クロスプラットフォームのキー入力監視
- Windows:
msvcrt.kbhit()
でキー入力の有無を確認し、入力があればmsvcrt.getch()
でそのキー入力を処理します。 - Linux/macOS:
select.select()
を使ってsys.stdin
の状態を監視し、入力があればsys.stdin.readline()
で受け取ります。
- Windows:
ベル音の出力
print("\a", end='', flush=True)
により、ターミナルがベル音に対応している場合は音が鳴ります。ベル音が鳴らない場合は、環境設定を見直してください。