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.stdout
やsys.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バージョンやパスの取得、標準入出力の操作など、さまざまな機能を提供します。これらを活用することで、より柔軟なプログラムの設計が可能になります。