Python Sys モジュール

sys モジュールは、コマンドライン引数、インポートパス、現在のインタープリターのバージョンなど、Python の実行時情報にアクセスできます。

import sys

自分のアプリケーションオブジェクトだけでなく、Python インタープリター自体とやり取りしたいときに sys を使います。

コマンドライン引数

sys.argv は、現在のスクリプトに渡された引数の一覧です。

import sys

sys.argv = ['main.py', '--debug', 'app']
print(sys.argv[0])
print(sys.argv[1:])
main.py
['--debug', 'app']

本格的なコマンドラインアプリケーションでは argparse を使う方がよいです。同じ考え方をベースにしつつ、検証やヘルプメッセージを提供します。

Python のバージョン

import sys

print(sys.version_info.major)
print(sys.version_info.minor)
3
14

インポート検索パス

sys.path は、Python がモジュールを探す場所を制御します。

import sys

print(type(sys.path).__name__)
print(len(sys.path) > 0)
list
True

sys.path の最初の要素には通常、現在のプロジェクトが含まれるため、ローカルモジュールをインポートできます。

標準入力と標準出力

sys.stdinsys.stdoutsys.stderr は、インタープリターが使うファイル風オブジェクトです。

import sys

print(sys.stdout.writable())
print(sys.stderr.writable())
True
True

プログラムを終了する

import sys

try:
    sys.exit(0)
except SystemExit as exc:
    print(exc.code)
0

関連リンク