【Pythonライブラリ】sysとは?

2021 年 10 月 15 日 by higakik

sysとはPythonのインタプリタや実行環境に関する情報を扱うためのライブラリです。
使用しているプラットフォームを調べるときや、
スクリプトの起動パラメータを取得する場合などに利用します。

sys.exit()

【Sampleコード】

import sys

print("Hello!")
sys.exit()
print("World!")

【実行結果】

Hello!

本来このコードは「Hello!」、「World!」の順番で表示するプログラムです。
しかし「Hello!」と「World!」の間にsys.exit()を記述することで、プログラムが呼び出した場所で終了し、そのあとの「World!」が表示されていないことが分かります。
この関数を使用することで、好きなタイミングでプログラムを終了させることができます。

sys.exc_info()

【Sampleコード】

import sys

try:
    1/0
except Exception:
    a_type, b_value, c_traceback = sys.exc_info()
    print("-------------------------------------------------")
    print(type(a_type))
    print(a_type)
    print("-------------------------------------------------")
    print(type(b_value))
    print(b_value)
    print("-------------------------------------------------")
    print(type(c_traceback))
    print(c_traceback)
    print("-------------------------------------------------")

【実行結果】

-------------------------------------------------
<class 'type'>
<class 'ZeroDivisionError'>
-------------------------------------------------
<class 'ZeroDivisionError'>
division by zero
-------------------------------------------------
<class 'traceback'>
<traceback object at 0x000001A988E9C900>
-------------------------------------------------

このコードのようにsys.exc_info()メソッドを使用することで、
例外オブジェクトを受け取ることができます。

sys.stdin.readline()

【Sampleコード】

import sys

print("名前を入力してください >")
data = sys.stdin.readline()

print("あなたの名前 >")
print(data)

【実行結果】

名前を入力してください >
山田
あなたの名前 >
山田

このコードのようにsys.stdin.readline()メソッドを使用すると、キーボードで入力された文字をを受け取ることができます。(1行の入力)

また、sys.stdin.readlines()メソッドを使用することで、複数行の入力値を受け取り、「リスト」に格納することができます。

import sys

print("メンバーの名前を入力してください >")
data = sys.stdin.readlines()

print("メンバーリスト >")
print(data)

【実行結果】

メンバーの名前を入力してください >
山田
田中
佐藤
^Z
メンバーリスト >
['山田\n', '田中\n', '佐藤\n']

入力を終了する際には「ctrl + z」を入力してenterを押します。

以上のように、sysには様々なメソッドが用意されており、使用用途は様々です。
実際ここに書いたものはほんの一部であって、多くのメソッドが用意されていました。
是非それらを使いこなせるようになりたい。。。
また、Pythonの標準ライブラリに含まれているので、別途インストールする必要はありません。
(pipなどでややこしいコマンド作業などしなくても使える!)

タグ: ,

TrackBack