Pythonで実行中のスクリプト名を取得・表示する方法|sysモジュールの使い方
このチュートリアルでは、実行中のPythonスクリプトファイル名を出力するプログラムの作成方法を解説します。スクリプト名は、標準ライブラリのsysモジュールを使うことで簡単に取得できます。
sys.argvとは?
sysモジュールは、pythonコマンドに渡されたすべてのコマンドライン引数をsys.argvというリストに格納します。このリストの最初の要素(インデックス0)には、必ず実行中のスクリプト名が入っています。つまり、sys.argv[0]を参照するだけでスクリプト名を取り出せるのです。
プログラムの手順
処理の流れは非常にシンプルで、以下の3ステップだけです。
- sysモジュールをインポートする。
- sys.argvリストの最初の要素(sys.argv[0])を出力する。
- これでスクリプト名の取得は完了です。
サンプルコード
実際のコードを見てみましょう。ここでは、osモジュールも併用して絶対パスとして出力しています。
# sysモジュールをインポート import sys # 絶対パスを取得するためにosモジュールをインポート import os # スクリプト名(sys.argvリストの最初の要素)を出力 print(os.path.abspath(sys.argv[0]))
実行結果
上記のコードを実行すると、Pythonスクリプトの絶対パスが出力されます。
C:\Users\hafeezulkareem\Desktop\sample\tutorialspoint.py
なお、絶対パスではなくファイル名だけが必要な場合は、os.path.basename(sys.argv[0])を使えば「tutorialspoint.py」のようにファイル名のみを取得できます。
まとめ
sys.argv[0]を参照することで、実行中のスクリプト名を簡単に取得できることが分かりました。ロギングやコマンドラインツールの開発など、さまざまな場面で役立つテクニックなので、ぜひ覚えておきましょう。チュートリアルについて不明な点があれば、コメント欄でお気軽にご質問ください。
-
Pythonでリストのすべてのサブリストを生成して出力する方法
リストが与えられたとき、そのリストに含まれるすべてのサブリスト(部分リスト)を生成して出力するプログラムを紹介します。要素数 n のリストの場合、空のリストを含めるとサブリストの総数は n×(n+1)/2+1 個になります。 実行例 入力 : list = [1, 2, 3] 出力 : [], [1], [1, 2], [1, 2, 3], [2], [2, 3], [3] アルゴリズム 考え方はシンプルです。開始位置 i と終了位置 j の組み合わせをすべて試し、スライスで部分リストを取り出します。 ステップ1 : 対象となるリストを用意します。 ステップ2 : 結果を格納するため、最
-
Pythonプログラムの修正方法:インデントエラーと未定義変数の解決策
エラーの原因 このプログラムには、主に2つの問題があります。 1. インデント(字下げ)の欠落 太字部分で発生している最初の問題は、インデントされていないブロックによるものです。Pythonでは、if文の中で実行したい処理は、必ずインデント(通常は半角スペース4つ)で字下げする必要があります。該当する行にインデントを1つ追加してください。 2. 変数「name」が定義されていない 2つ目の問題は、name変数が定義される前に使用されていることです。Pythonでは、代入されていない変数を参照すると NameError が発生します。name = Daniel のように、変数を使用する前に必ず定