BOP-未来のクリエイティブエンジニアのために -

← ホームに戻る

初学者でもわかる簡単な説明

sys モジュールは、あなたのPythonプログラムが、まるで「自分がどこで、どのように動いているか」を把握し、場合によっては「どう動くか」を指示するためのものです。

例えば、

これらのような、プログラムの外側にある「環境」に関することを扱うのがsysモジュールです。

基本的なこと

sysモジュールを使うには、まずimport sysと記述して読み込む必要があります。

sysモジュールが提供する主な機能は以下のカテゴリに分けられます。

よく使うコマンド

ここでは、sysモジュールで特によく使われる機能をいくつかご紹介します。

サンプルコード

以下に、上記のよく使うコマンドを使ったサンプルコードを示します。

import sys

print("--- sys.argvの例 ---")
# コマンドライン引数を表示
# 例: python your_script.py arg1 arg2
print(f"スクリプト名: {sys.argv[0]}")
if len(sys.argv) > 1:
    print(f"引数: {sys.argv[1:]}")
else:
    print("引数はありません。")

print("\n--- sys.versionの例 ---")
# Pythonのバージョン情報を表示
print(f"Pythonのバージョン: {sys.version}")

print("\n--- sys.pathの例 ---")
# モジュール検索パスを表示
print("モジュール検索パス:")
for p in sys.path:
    print(f"  {p}")

print("\n--- sys.stdout/stderr の例 ---")
# 標準出力と標準エラー出力にメッセージを出力
sys.stdout.write("これは標準出力に出力されます。\n")
sys.stderr.write("これは標準エラー出力に出力されます。\n")

print("\n--- sys.exit() の例 (コメントアウトしています) ---")
# 条件に応じてプログラムを終了させる例
# input_value = input("0 を入力するとプログラムを終了します: ")
# if input_value == '0':
#     print("プログラムを終了します。")
#     sys.exit(0) # 正常終了
# else:
#     print("終了しませんでした。")

print("\n--- その他の便利な機能 ---")
# インタプリタの再帰制限の取得と設定
current_recursion_limit = sys.getrecursionlimit()
print(f"現在の再帰制限: {current_recursion_limit}")

# 例外情報の取得 (try-exceptブロック内で使用)
try:
    1 / 0
except Exception:
    exc_type, exc_obj, exc_tb = sys.exc_info()
    print(f"エラーの種類: {exc_type.__name__}")
    print(f"エラーメッセージ: {exc_obj}")
    # tracebackモジュールと組み合わせるとより詳細な情報が得られます
    # import traceback
    # traceback.print_tb(exc_tb)

print("\nプログラムの実行が完了しました。")

このコードの実行方法:

上記のコードをsample_sys.pyという名前で保存します。

ターミナル(コマンドプロンプトやPowerShellなど)を開き、ファイルが保存されているディレクトリに移動します。

以下のコマンドで実行します。

引数なしで実行: python sample_sys.py

引数付きで実行: python sample_sys.py hello world 123

sysモジュールは、Pythonプログラムをより柔軟に、そして実行環境に適応させるために非常に役立つツールです。ぜひ色々な機能を試してみてください。

ROI 探偵事務所