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.stdin、sys.stdout、sys.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