Python Sys モジュールを学ぶ
この記事ではPython Sys モジュールについて見ていきます。インタプリタによって維持される変数と関数があり、sys モジュールはそれらと対話する方法を提供します。これらの変数は、インタープリタが有効になるまで使用できます。一般的に使用される sys 関数のいくつかを見てみましょう。
sys モジュールを使用するには、まずモジュールをインポートする必要があります。
sys.version – これには、Python の現在のバージョンに関する情報が保存されます。
$ python3
>>> import sys
>>> sys.version
sys.path – パス変数には、ディレクトリ パスが文字列のリストの形式で保存されます。相対パスを使用してモジュールをインポートしたりプログラムを実行したりするたびに、Python インタープリターはパス変数を使用して必要なモジュールまたはスクリプトを検索します。
パス インデックスには、Python インタープリタを呼び出すために使用されたスクリプトを含むディレクトリがインデックス「ゼロ 」で保存されます。インタプリタが対話的に呼び出される場合、またはスクリプトが標準入力から読み取られる場合、path[0] は空の文字列になります。
>>> sys.path
スクリプトを呼び出すとき、path[0] にはディレクトリ パスが保存されます。
$ vim 1.py
python3 1.py
カスタム ディレクトリにモジュールがある場合は、path.append() メソッドを使用してディレクトリ パスをパス変数に追加できます (パスはリスト オブジェクトであるため、リスト メソッド「<」を使用しています)strong> 追加 」)。
$ python3
>>> import sys
>>> sys.path
>>> sys.path.append('/root/test/')
>>> sys.path
sys.argv – argv は、Python プログラムに実行時引数を渡すために使用されます。 Argv は、最初の値としてスクリプト名を格納し、その後に渡す引数を格納するリストです。 Argv 値は文字列型として保存されるため、必要に応じて明示的に変換する必要があります。
>>> sys.argv
以下のスニペットを実行すると、範囲関数の終了値が sys.argv[1] 経由で 10 として渡され、argv のリストを出力するために他のいくつかの値も渡されます。値はプログラムの最後にあります。
#!/usr/bin/python3
import sys
for x in range(1,int(sys.argv[1])):
print(x)
Print all the arguments passed
print("Arguments passed:",sys.argv)
sys.executable – Python インタープリター バイナリの絶対パスを出力します。
>>> sys.executable
'/usr/bin/python3'
sys.platform – OS プラットフォームのタイプを出力します。この関数は、プログラムをプラットフォームに依存して実行する場合に非常に役立ちます。
>>> sys.platform
'linux'
sys.exit – SystemExit(status) を上げてインタープリタを終了します。デフォルトではステータスはゼロになっており、成功したとみなされます。以下の例に示すように、終了ステータスとして整数値を使用することも、文字列(“failed ”)のような他の種類のオブジェクトを使用することもできます。
サンプルの下では、スニペットを使用してプラットフォームが Windows であるかどうかを確認し、コードを実行します。そうでない場合は、exit() 関数を呼び出します。
#!/usr/bin/python3
import sys
if sys.platform == 'windows': # CHECK ENVIRONMENT
#code goes here
pass
else:
print("This script is intended to run only on Windows, Detected platform: ", sys.platform)
sys.exit("Failed")
sys.maxsize – これは、変数が保持できる最大値を表す整数値です。
On a 32-bit platform it is 2**31 - 1
On a 64-bit platform it is 2**63 - 1
まとめ
ここまでsys モジュールの重要な機能をいくつか見てきましたが、さらに多くの機能があります。次の記事を作成するまで、ここで sys モジュールの詳細を読むことができます。