くまがいブログ

エンジニアに目指す社会人

Pythonのsysモジュールの使い方


目次

sysモジュールとは


Pythonのsysモジュールは、Pythonのシステムに関する情報や操作を行うための機能が集まったモジュールです。この記事では、sysモジュールを使った基本的な操作やよく使われる機能について、初心者向けにわかりやすく解説します。

主要な機能の説明


1.sys.argv でコマンドライン引数を扱う

sys.argvは、Pythonスクリプトに渡されたコマンドライン引数をリストとして取得するために使用します。例えば、次のようにスクリプトを実行するとします。

script.py:

import sys
print(sys.argv)
$ python script.py arg1 arg2

出力:

['script.py', 'arg1', 'arg2']

sys.argv[0]にはスクリプト名が入り、以降の要素にコマンドライン引数が順番に格納されます。

2.sys.exit() でスクリプトを終了させる

sys.exit()を使うと、Pythonプログラムを終了させることができます。引数にステータスコードを指定することで、正常終了やエラー終了を表現できます。0は正常終了、1以上は異常終了を意味します。

import sys
sys.exit(0)  # 正常終了

また、異常終了の場合には、次のようにエラーメッセージを表示しながら終了させることができます。sys.exit()には文字列を渡すこともでき、その場合、標準エラー出力(stderr)にメッセージを表示し、終了コードとして1が自動的に返されます。

sys.exit("エラーが発生しました")

上記のように文字列を渡すと、Pythonはその文字列を標準エラー出力に表示し、終了ステータスとして1を返します。この方法は、ユーザーにエラーの内容を知らせるのに便利です。

3.sys.path でモジュール検索パスを操作する

sys.pathは、Pythonがモジュールを検索する際のパスのリストです。このリストを操作することで、Pythonのモジュール検索の動作を変更することができます。

例えば、次のようにして現在のモジュール検索パスを確認することができます

import sys
print(sys.path)

もし、自作のモジュールをインポートしたいが、そのパスがsys.pathに含まれていない場合、次のようにパスを追加できます。

sys.path.append('/path/to/your/module')

このようにすることで、Pythonがモジュールを探す際に、指定したパスも含めるようになります。

4.sys.version でPythonのバージョン情報を取得する

sys.versionを使うと、現在実行しているPythonのバージョン情報を取得できます。これはPythonの互換性を確認する際に便利です。

import sys
print(sys.version)

出力例:

3.8.5 (default, Jul 20 2020, 15:26:14) 
[GCC 7.5.0]

5.sys.platform で実行環境のOSを知る

sys.platformは、Pythonが動作しているプラットフォームを文字列で返します。これを使って、スクリプトがどのOS上で動作しているかを確認し、特定のOS用の処理を行うことができます。

import sys
print(sys.platform)

例えば、Linux環境では 'linux'、Windows環境では 'win32' 、macOS環境では、'darwin' といった結果が返ってきます。

これを使って特定のOSごとに異なる処理を行うことが可能です。

if sys.platform == 'linux':
    print("Linux環境です")
elif sys.platform == 'win32':
    print("Windows環境です")
elif sys.platform == 'darwin':
    print("macOS環境です")

まとめ


Pythonのsysモジュールを使うことで、システムに関するさまざまな操作が可能です。例えば、コマンドライン引数の取得、プログラムの終了、モジュール検索パスの操作、Pythonバージョンの確認、実行環境のOS判定、標準入出力の操作など、柔軟に環境に応じた動作を実現できます。