Pythonのsys
モジュールは、Pythonインタープリタやその環境に関する情報を提供し、プログラムの挙動を制御する機能を備えています。
このモジュールを使うことで、Pythonスクリプトをより柔軟に制御できます。
本記事では、sys
モジュールの基本的な機能を解説します。
sysモジュールとは?
sys
モジュールは、Python標準ライブラリの一部で、次のようなタスクをサポートします。
利用するには、以下のようにインポートします。
import sys
sysモジュールの主な機能と使い方
コマンドライン引数の取得
スクリプトがコマンドラインから渡された引数を取得する場合に使用します。 これについては、すでに「Python初心者のお勉強ノート(5)コマンドライン引数の参照と例外処理」でも解説していますので、参考にしてください。
sys.argv
リストとしてコマンドライン引数を取得します。リストの0番目はスクリプト名が格納され、それ以降に引数が続きます。
import sys print("スクリプト名:", sys.argv[0]) if len(sys.argv) > 1: print("渡された引数:", sys.argv[1:]) else: print("引数はありません")
実行例:
上のプログラムをscript.py
という名前で保存しておきます。
> python script.py arg1 arg2 スクリプト名: script.py 渡された引数: ['arg1', 'arg2']
Pythonインタープリタの情報
sys.version
現在使用しているPythonのバージョン情報を取得します。
sys.platform
現在のOSを示す文字列を取得します。
>>> import sys >>> sys.version '3.13.0 (tags/v3.13.0:60403a5, Oct 7 2024, 09:38:07) [MSC v.1941 64 bit (AMD64)]' >>> sys.platform 'win32' >>>
標準入出力の操作
sys.stdout
と sys.stderr
通常の出力(標準出力)やエラー出力(標準エラー出力)を制御します。これらをカスタマイズすることで、出力先を変更できます。
例: 標準エラー出力にメッセージを出力
import sys sys.stderr.write("エラーメッセージ\n")
sys.stdin
標準入力を操作できます。 柔軟な入力処理を行う際に役立ちます。
標準入出力については「Python初心者のお勉強ノート(6)標準入力と標準出力、ファイルの読み書き」でも解説していますので、参考にしてください。
プログラムの終了
sys.exit()
プログラムを終了する際に使用します。引数に終了ステータスコードを指定できます。
import sys print("プログラムを終了します") sys.exit(0)
0
は正常終了を、0以外
はエラー終了を意味します。
この値は、プログラムを呼び出した親プロセスに返されます。
パス操作とモジュール検索
sys.path
Pythonがモジュールを検索するパスのリストです。このリストを操作することで、カスタムのモジュール検索パスを追加できます。
import sys print("モジュール検索パス:") for p in sys.path: print(p)
特定のディレクトリをモジュール検索パスに追加する例:
import sys sys.path.append('/path/to/custom_modules')
メモリ管理情報
sys.getsizeof()
オブジェクトのメモリ使用量(バイト単位)を取得します。
>>> sys.getsizeof([1,2,3]) 88 >>>
まとめ
sys
モジュールを使うと、Pythonインタープリタやシステム環境に関する情報を取得し、プログラムの挙動を柔軟に制御できます。
本記事では以下の内容を学びました。
これらを活用すれば、環境に応じた柔軟なプログラムを作成できます。