okpy

Pythonエンジニア兼テックリーダーが、多くのプロジェクトとチーム運営から得た実践的な知識を共有するブログです。

強力なツール:Python sys ライブラリ

Python sys ライブラリ完全ガイド

Python 標準ライブラリの sys は、Python インタープリタと対話するための強力なツールです。本記事では、sys ライブラリの基本概念から実践的な使用例までを詳しく解説します。

1. sys ライブラリの概要

  • sysPython インタープリタの動作を制御する標準ライブラリです。
  • コマンドライン引数、標準入出力、例外情報、Python のバージョン情報などを取得できます。
  • Python 実行環境に関する情報をプログラム内で利用する際に便利です。

インストール方法

sysPython の標準ライブラリなので、追加のインストールは不要です。

import sys

2. 主な機能と使用例

(1) コマンドライン引数の取得

Python スクリプトが実行されたときの引数を取得できます。

import sys

# コマンドライン引数の表示
print("コマンドライン引数:", sys.argv)

# 第一引数を取得
if len(sys.argv) > 1:
    print("第一引数:", sys.argv[1])

使用例: python script.py argument1 argument2 と実行すると、sys.argv['script.py', 'argument1', 'argument2'] が取得されます。


(2) Python のバージョン情報の取得

import sys

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

使用例: 特定の Python バージョンでスクリプトが実行されているかを確認する際に利用できます。


(3) 標準入力・出力の操作

import sys

# 標準出力のリダイレクト
sys.stdout.write("標準出力へのメッセージ\n")

# 標準入力の取得
print("入力を待機しています...")
user_input = sys.stdin.readline().strip()
print("入力された内容:", user_input)

使用例: 標準出力を別のファイルにリダイレクトすることも可能です。

import sys

with open('output.txt', 'w') as f:
    sys.stdout = f
    print("このメッセージはファイルに出力されます")
    sys.stdout = sys.__stdout__

(4) モジュール検索パスの確認と変更

import sys

# 現在のモジュール検索パスを取得
print("モジュール検索パス:", sys.path)

# 新しいパスを追加
sys.path.append('/my/custom/path')
print("追加後のパス:", sys.path)

使用例: カスタムモジュールが適切にインポートされるか確認する際に使用します。


(5) インタープリタの終了

import sys

print("プログラムを終了します。")
sys.exit(0)

使用例: エラー発生時に sys.exit(1) で異常終了を明示できます。


(6) 例外情報の取得

import sys

try:
    1 / 0
except ZeroDivisionError:
    print("例外情報:", sys.exc_info())

使用例: エラーハンドリング時に詳細な情報を取得したい場合に利用します。


(7) メモリ使用量の取得

import sys

x = [i for i in range(10000)]
print("リスト x のメモリ使用量:", sys.getsizeof(x), "バイト")

使用例: 変数がどれだけメモリを使用しているかを確認したいときに役立ちます。


(8) 再帰制限の設定

import sys

print("現在の再帰制限:", sys.getrecursionlimit())
sys.setrecursionlimit(2000)
print("変更後の再帰制限:", sys.getrecursionlimit())

使用例: 再帰的な処理を行う場合、デフォルトの制限を超えないよう調整できます。


3. sys vs os の比較

機能 sys os
コマンドライン引数の取得
Python バージョン取得
標準入力・出力の操作
モジュール検索パス管理
メモリ使用量の取得
システムコマンド実行

まとめ

Pythonsys ライブラリは、Python インタープリタと対話するための強力なツールです。特にコマンドライン引数の処理、バージョン確認、標準入出力の管理において便利です。Python スクリプトをより柔軟に制御するために、ぜひ活用してください! 🚀