Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonのsysモジュールとは?基本の使い方を実例付きで解説

はじめに

Pythonのsysモジュールは、Pythonインタープリタに関するさまざまな情報を提供してくれる標準ライブラリです。インタープリタが持つ定数や関数、メソッドの詳細情報を取得したり、スクリプトの動作そのものを制御したりすることもできます。

この記事では、sysモジュールの基本的な使い方を、実際のコード例とともにわかりやすく解説していきます。

sysモジュールを使う準備

sysモジュールはPythonに最初から同梱されている標準モジュールです。そのため、PIPなどのパッケージマネージャーで別途ダウンロード・インストールする必要はありません。

sysモジュールとその機能を使い始めるには、まずインポートを行います。次の1行をコードの先頭に記述するだけでOKです。

import sys

コマンドライン引数の一覧を取得する

Pythonでは、ターミナルから引数を指定してスクリプトを直接実行できます。ユーザーが実行時にどのような引数を渡したのかを表示したり、あとで別の処理に使えるように保存しておいたりできると便利ですね。

そんなときに活躍するのが、sysモジュールのargv関数です。

# example.py という名前のPythonスクリプトを作成
import sys
print("You entered: ", sys.argv[1], sys.argv[2])

上記のプログラムを引数付きでターミナルから実行してみましょう。まず、スクリプトが置かれているディレクトリに移動し、次のコマンドを実行します。

python example.py Hello World

このコマンドを実行すると、プログラムが起動し、入力した引数が出力されます。

出力結果

Hello World

ポイント: 上の例では sys.argv[1] から始めており、sys.argv[0] を使っていない点に注目してください。これは、sys.argv[0] には引数ではなく「現在実行中のスクリプト名」が格納されるためです。

プログラムの実行を途中で停止する

アプリケーションを強制終了したい場合や、任意の時点で処理を中断したい場合は、sysモジュールのexit()関数を使用します。

import sys
print("Hello there!")
sys.exit()
print("この行は、直前でプログラムが終了しているため実行されません")

出力結果

Hello there!

この例では、sys.exit() を呼び出した時点でプログラムの実行が停止するため、最後の行は出力されません。

現在使っているPythonのバージョンを確認する

「今自分がどのバージョンのPythonで作業しているのか知りたい」「スクリプトを実行しているユーザーにPythonのバージョンを知らせたい」といった場面はよくあります。

そんなときはsys.versionを使えば、簡単にバージョン情報を取得できます。

import sys
print("You are currently using Python version", sys.version)

出力結果

You are currently using Python version 3.7.5 (tags/v3.7.5:5c02a39a0b, Oct 15 2019, 00:11:34) [MSC v.1916 64 bit (AMD64)]

インストール済みPythonモジュールの場所を確認する

「自分の環境にあるPythonモジュールがどこにダウンロード・インストールされているのか知りたい」という場合は、sys.pathを確認しましょう。モジュールの検索パス一覧がリスト形式で表示されます。

import sys
sys.path

ユーザーの入力値を読み取る

ユーザー入力を読み取る方法は input() 関数だけではありません。sysモジュールのstdinを使っても、標準入力からデータを受け取ることができます。

import sys
data = sys.stdin.readline()
print("You have entered -> " + data)

このコードは、ユーザーがEnterキーを押すまでに入力されたデータを読み取り、その内容を出力します。

まとめ

この記事では、Pythonにおけるsysモジュールの基本的な使い方と活用シーンを紹介しました。コマンドライン引数の取得、プログラムの終了、バージョン確認、モジュール検索パスの確認、標準入力の読み取りなど、実務でも役立つ機能が多数含まれています。

sysモジュールには、ここで紹介した以外にも多くの便利な関数や定数が用意されています。それぞれの詳細については、公式ドキュメント(https://docs.python.org/3/library/sys.html)を参照してみてください。

  1. PythonのCGIとは?仕組みとサーバー設定方法をわかりやすく解説

    CGI(Common Gateway Interface:共通ゲートウェイインターフェース)は、HTTPサーバーなどの情報サーバーと外部のゲートウェイプログラムがやり取りするための標準規格です。現在のバージョンはCGI/1.1であり、CGI/1.2が策定中です。Webブラウジングの流れCGIの概念を理解するために、ハイパーリンクをクリックして特定のWebページやURLを閲覧するときに何が起こるのかを見てみましょう。ブラウザがHTTP Webサーバーに接続し、URL(つまりファイル名)を要求します。WebサーバーはURLを解析してファイル名を探します。該当するファイルが見つかればそれをブラウザへ

  2. Pythonのgetpassモジュールとは?パスワード入力とユーザー名取得の基本を解説

    Pythonの標準ライブラリには、ターミナル上で動作するアプリケーションにおいて、ユーザーの認証情報を検証してから処理を実行したい場合に役立つgetpassモジュールが用意されています。このモジュールには主に2つの関数が定義されており、セキュリティを意識したコマンドラインツールの開発に欠かせない存在です。 getpass() 関数:パスワードを安全に入力する getpass()関数は、ユーザーにパスワードの入力を促すための関数です。デフォルトでは、ターミナルに入力されたキーは画面に表示(エコー)されないため、第三者にパスワードを盗み見られる心配がありません。 また、プロンプトとして表示される