sysモジュール | 標準モジュールの活用 | Python本格超入門

スポンサーリンク
スポンサーリンク

sysモジュール

Pythonのsysモジュールは、Pythonインタプリタと対話するための機能を提供する標準モジュールです。このモジュールを利用することで、Pythonの実行環境に関する情報を取得したり、プログラムの動作を制御することができます。特に、コマンドライン引数の取得や標準入出力の操作など、システムレベルの操作が可能です。

基本的な使い方

sysモジュールを使用するには、プログラム内でインポートします。

import sys

インポート後は、sysモジュール内のさまざまな属性や関数にアクセスすることが可能です。以下に代表的な機能をいくつか紹介します。

コマンドライン引数の取得

sys.argvを使用すると、プログラムが実行された際のコマンドライン引数を取得することができます。sys.argvはリスト形式で、最初の要素には実行されたスクリプトのファイル名が格納され、以降の要素に引数が続きます。

import sys

# コマンドライン引数を表示
print(f"引数のリスト: {sys.argv}")

例として、python script.py arg1 arg2と実行した場合、出力されるリストは['script.py', 'arg1', 'arg2']となります。

Pythonのバージョン情報の取得

sys.versionを使うと、実行中のPythonのバージョン情報を取得できます。

import sys

# Pythonのバージョンを表示
print(f"Pythonのバージョン: {sys.version}")

このコードを実行すると、インストールされているPythonのバージョン情報が出力されます。

標準出力、標準エラーのリダイレクト

sys.stdoutsys.stderrを利用すると、標準出力や標準エラーのリダイレクトが可能です。たとえば、ログファイルに出力内容を記録する場合などに役立ちます。

import sys

# 出力をファイルにリダイレクト
with open('output.txt', 'w') as f:
    sys.stdout = f
    print("これはファイルに出力されます")

このコードでは、標準出力がoutput.txtというファイルにリダイレクトされ、「これはファイルに出力されます」というメッセージがそのファイルに記録されます。

sysモジュールのその他の機能

sysモジュールには他にもさまざまな機能があります。以下はその一部です。

属性/関数 説明
sys.path モジュールの検索パスを管理するリスト。Pythonスクリプトがどのディレクトリを検索するかの順序を示します。
sys.exit() プログラムを終了します。引数に終了コードを指定可能(0は正常終了、1はエラー終了など)。
sys.platform 実行中のプラットフォーム(OS)の名前を取得します。
sys.getsizeof() オブジェクトのサイズ(バイト単位)を返します。

例:sys.exit()の使い方

以下の例では、条件に基づいてプログラムを強制終了する方法を示します。

import sys

# 引数がない場合は終了
if len(sys.argv) < 2:
    print("引数が必要です。")
    sys.exit(1)

print(f"引数: {sys.argv[1]}")

このコードは、コマンドライン引数が不足している場合にエラーメッセージを表示し、プログラムを終了します。終了コード1はエラーを示します。

まとめ

Pythonのsysモジュールは、システムとプログラムのやり取りをサポートするための非常に便利なツールです。コマンドライン引数の処理、Pythonバージョンやパスの取得、標準入出力の操作など、さまざまな機能を提供します。これらを活用することで、より柔軟なプログラムの設計が可能になります。