Python sys モジュール

sysは Python 標準ライブラリのモジュールで、Python インタープリタおよびその環境と対話する機能を提供します。

を通じてsysライブラリを使用すると、Python インタープリタに関連する変数や関数(コマンドライン引数、標準入出力、プログラムの終了など)にアクセスできます。

sys ライブラリのインポート

使用する場合sysライブラリの前に、まずそれをインポートする必要があります。インポート方法は次のとおりです。

import sys

例

import sys

# os モジュールのすべての属性とメソッドを一覧表示
print(dir(os))

sys ライブラリの一般的な機能

1. コマンドライン引数

sys.argvはコマンドライン引数を含むリストです。sys.argv[0]はスクリプト名で、後続の要素はスクリプトに渡される引数です。

サンプルコード:

例

import sys

print("スクリプト名:", sys.argv[0])
print("引数リスト:", sys.argv[1:])

実行方法:

python script.py arg1 arg2

出力結果:

脚本名称: script.py
参数列表: ['arg1', 'arg2']

2. プログラムの終了

sys.exit()プログラムを終了するために使用します。終了ステータスコードとして整数を渡すことができます。通常、00 は成功を表し、0以外の値はエラーを表します。

サンプルコード:

例

import sys

print("プログラム開始")
sys.exit(0)
print("このコード行は実行されません")

3. 標準入出力

sys.stdin、sys.stdoutとsys.stderrはそれぞれ標準入力、標準出力、標準エラーストリームを表します。これらのストリームをリダイレクトして、カスタムの入出力動作を実現できます。

サンプルコード:

例

import sys

# 標準出力をファイルにリダイレクト
with open('output.txt', 'w') as f:
    sys.stdout = f
    print("この行の内容は output.txt に書き込まれます")

# 標準出力を復元
sys.stdout = sys.__stdout__
print("この行の内容はコンソールに表示されます")

4. Python バージョン情報

sys.versionとsys.version_info現在の Python インタープリタのバージョン情報を提供します。

サンプルコード:

例

import sys

print("Python バージョン:", sys.version)
print("バージョン情報:", sys.version_info)

出力結果:

<code>Python 版本: 3.9.7 (default, Aug 31 2021, 13:28:12) 
[GCC 7.5.0]
版本信息: sys.version_info(major=3, minor=9, micro=7, releaselevel=&#39;final&#39;, serial=0)
</code>

5. モジュール検索パス

sys.pathは、Python インタープリタがモジュールをインポートするときに検索するパスを含むリストです。このリストを変更して、カスタムのモジュール検索パスを追加できます。

サンプルコード:

例

import sys

print("モジュール検索パス:", sys.path)
sys.path.append('/custom/path')
print("更新後のモジュール検索パス:", sys.path)

sys モジュールの一般的な属性

属性説明
sys.argvコマンドライン引数のリスト。sys.argv[0]はスクリプト名です。
sys.pathPython モジュール検索パス(PYTHONPATH)
sys.modules読み込み済みモジュールの辞書
sys.platformオペレーティングシステムのプラットフォーム識別子(例:'win32', 'linux', 'darwin')
sys.versionPython インタープリタのバージョン情報
sys.executablePython インタープリタの絶対パス
sys.stdin標準入力ストリーム(ファイルオブジェクト)
sys.stdout標準出力ストリーム(ファイルオブジェクト)
sys.stderr標準エラーストリーム(ファイルオブジェクト)
sys.byteorderバイトオーダー('little' 或 'big')
sys.maxsize最大整数値(2**31-1 或 2**63-1)

sys モジュールの一般的なメソッド

メソッド説明
sys.exit([status])プログラムを終了し、status=00 は正常終了を表します
sys.getsizeof(obj)オブジェクトが占有するメモリのバイト数を返します
sys.getdefaultencoding()デフォルトの文字列エンコーディングを取得します(通常は'utf-8')
sys.setrecursionlimit(limit)再帰の深さの制限を設定します(デフォルトは1000)
sys.getrecursionlimit()現在の再帰の深さの制限を取得します
sys.getrefcount(obj)オブジェクトの参照カウントを返します
sys.exc_info()現在の例外情報を取得します((type, value, traceback))
sys.settrace(tracefunc)デバッグトレース関数を設定します
sys.setprofile(profilefunc)パフォーマンスプロファイリング関数を設定します
その他の拡張