{category}

Python - システム関連

sys

シス(標準ライブラリ

意味 Pythonシステムとやり取り


sysとは?

sysモジュールは、Pythonインタープリタや実行環境に関する情報を提供したり、操作するための関数や変数をまとめたものです。

sysの具体的な使い方

システム情報とコマンドライン引数の取得

import sys

# Pythonバージョンの表示
print(f'Pythonのバージョン: {sys.version}')

# プラットフォームの表示
print(f'実行プラットフォーム: {sys.platform}')

# コマンドライン引数の表示
print('コマンドライン引数:')
for i, arg in enumerate(sys.argv):
    print(f'  引数 {i}: {arg}')

# Pythonのパスを表示
print('\nPythonの検索パス:')
for path in sys.path:
    print(f'  {path}')

👇出力結果

Pythonのバージョン: 3.9.5 (default, May 3 2021, 08:33:26) 
[Clang 12.0.0 (clang-1200.0.32.29)]
実行プラットフォーム: darwin
コマンドライン引数:
  引数 0: script.py
  引数 1: arg1
  引数 2: arg2

Pythonの検索パス:
  /Users/username/projects
  /usr/local/lib/python39.zip
  /usr/local/lib/python3.9
  /usr/local/lib/python3.9/lib-dynload
  /Users/username/Library/Python/3.9/site-packages

sysモジュールを使用して、Pythonのバージョン、実行プラットフォーム、コマンドライン引数、Pythonの検索パスを表示します。これらの情報は、スクリプトの動作環境の把握やデバッグに役立ちます。

標準出力のリダイレクトと復元

import sys
import io

# 元の標準出力を保存
original_stdout = sys.stdout

# 標準出力を文字列バッファにリダイレクト
sys.stdout = io.StringIO()

# この出力は文字列バッファに送られる
print('この出力はキャプチャされます。')
print('これも同様です。')

# キャプチャされた出力を取得
output = sys.stdout.getvalue()

# 標準出力を元に戻す
sys.stdout = original_stdout

# キャプチャされた出力を表示
print('キャプチャされた出力:')
print(output)

print('この出力は通常通り表示されます。')

👇出力結果

キャプチャされた出力:
この出力はキャプチャされます。
これも同様です。

この出力は通常通り表示されます。

sysモジュールを使用して標準出力をリダイレクトし、プログラムの出力をキャプチャする方法を示しています。これは、ログ作成やテスト時の出力確認などに役立ちます。

sysに関するよくある質問

Q. sys.argvとは何ですか?
A. sys.argvは、Pythonスクリプトに渡されたコマンドライン引数のリストです。sys.argv[0]はスクリプト名自体で、sys.argv[1]以降が実際の引数になります。
Q. sys.exitの用途は?
A. sys.exit()関数は、Pythonプログラムを即座に終了させるために使用します。オプションで終了コードを指定でき、0は正常終了、それ以外はエラー終了を意味します。
Q. sys.pathの重要性は?
A. sys.pathは、Pythonがモジュールを検索するディレクトリのリストです。自作のモジュールやサードパーティのライブラリを使用する際に、sys.pathに適切なディレクトリを追加することで、インポートが可能になります。

sysが学べる書籍の紹介

「プログラミング単語帳」を使って、プログラミングの単語を英単語のように学習してみませんか?
プログラミング単語帳には、Pythonのsysやthreading.Semaphore、threading.Lock、shelve、などのような実務でよく使われる単語が数百以上収録されています。
この書籍には、プログラミングの単語の意味や読み方、単語の使い方がわかる例文などが掲載されており、いつでもどこでもプログラミングの学習ができます。

よく使われる単語にだけ絞って学習することができるので、効率的にプログラミングが学習できます。

1日5分の暗記でプログラミンが身に付く!プログラミング単語帳 公式ストアで発売中!

HTML編、CSS編、JavaScript編、PHP編、Ruby編、その他単語編の6シリーズ分が公式ストアにて販売中です。気になった方はぜひ購入してみてください。


Pythonを学べる「プログラミング単語帳」アプリ

プログラミング単語帳がアプリになりました!Pythonはもちろん、10種類のプログラミング言語の中から、よく使われる単語をスマホで学習できます。

収録単語は2,000単語以上!
現在は、HTML、CSS、JavaScirpt、PHP、Laravel、Ruby、Python、MySQL、Linux、など10カテゴリーの単語帳が1つのアプリに収録されています。

いつでも、どこでも、隙間時間を有効活用して、プログラミングを効率的に学べるので、ぜひダウンロードしてみてください。

2024年7月アップデート情報:「Laravel」カテゴリーが追加されましました!

2024年8月アップデート情報:「MySQL」「Linux」カテゴリーが追加されましました!


関連するそのほかの単語

threading.Semaphore

並列処理の同時実行数制御

種類: マルチスレッド

threading.Lock

並列処理の排他制御

種類: マルチスレッド

shelve

辞書のように使えるファイル保存

種類: データ交換

for

決められた回数繰り返す

種類: ループ

is

同一のものか

種類: アイデンティティ演算子