おもこん

おもこんは「思いつくままにコンピュターの話し」の省略形です

Python初級者のお勉強ノート(16)sysモジュール

Pythonsysモジュールは、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.stdoutsys.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インタープリタやシステム環境に関する情報を取得し、プログラムの挙動を柔軟に制御できます。 本記事では以下の内容を学びました。

  1. コマンドライン引数の取得
  2. Pythonインタープリタ情報の確認
  3. 標準入出力の操作
  4. プログラムの終了やモジュール検索パスの管理

これらを活用すれば、環境に応じた柔軟なプログラムを作成できます。