pyファイル#

Pythonの実行ファイルとしては、主に.ipynbファイルと.pyファイル二つがあります。

  • ipynbファイルは、Jupyter Notebookと呼ばれる対話型の環境で使用されるファイル形式です。拡張子は.ipynbです。Jupyter Notebookは、コード、テキスト、図、グラフなどを組み合わせたドキュメントを作成できる環境であり、プログラムの実行や結果の可視化が可能です。ipynbファイルは、セルと呼ばれるブロックに分割されており、各セルにはコードやテキストを記述できます。

  • pyファイルは、Pythonのソースコードを含むテキストファイルです。

    • pyファイルは、コマンドラインから直接実行できます。実行時には、ファイル内のコードが順番に実行されます。

    • pyファイルは、他のPythonファイルからモジュールとしてインポートして使用することもできます。これにより、コードの再利用やモジュール化が可能となります。

モジュールのインポート#

Pythonでは、モジュールをインポートすることで、そのモジュール内で定義された関数、クラス、変数などにアクセスすることができます。

import moduleという形でモジュールをインポートします。ここで、moduleはpyファイルのファイル名から拡張子の.pyを取り除いたものです。

モジュールをインポートする際に、検索パスに含まれるディレクトリを順番に調べ、最初に見つかったモジュールを使用します。

  • 現在のディレクトリ: 実行中のスクリプトが存在するディレクトリ。

  • 環境変数PYTHONPATHで指定したディレクトリ

  • 標準ライブラリのためのディレクトリ

  • インストールしたサードパーティライブラリのためのsite-packagesディレクトリ

import sys
for place in sys.path:
    print(place)
/Users/ryozawau/css_tohoku/css_tohoku/draft
/Users/ryozawau/anaconda3/envs/jupyterbook/lib/python312.zip
/Users/ryozawau/anaconda3/envs/jupyterbook/lib/python3.12
/Users/ryozawau/anaconda3/envs/jupyterbook/lib/python3.12/lib-dynload

/Users/ryozawau/anaconda3/envs/jupyterbook/lib/python3.12/site-packages

pyファイルの実行#

if __name__ == “__main__”:を使うことで、スクリプトから直接にコードを実行することができます。

具体的には、以下のようなコードを考えてみましょう:

def some_function():
    # 何らかの処理
    pass
def main():
    # メインの処理
    pass
if __name__ == "__main__":
    main()
  • some_functionという関数とmainというメインの処理を行う関数が定義されています。

  • __name__ はモジュールとして読み込まれた時にはモジュール名でしたが、スクリプトとして実行された場合には、main に変わります。この性質を利用することで、スクリプトとして実行された場合にのみ、ある処理を実行したいと言った処理を実現できます。

  • この仕組みにより、python ファイル.pyスクリプトとして実行された場合、__name__変数には__main__という値が割り当てられます。したがって、if __name__ == "__main__":のブロック内のコード main()関数が呼び出され、スクリプトから直接に実行されます。

argparseによるコマンドラインオプションの設定#

argparseはコマンドライン引数を設定・処理するためのツールです。

.pyフィアルでargparseを使うことで、コマンドラインからプログラムに引数を渡す、動作を制御することができます。

「コマンドライン引数」とは、以下のようにPythonファイルを呼び出す際に渡せる値のことです。

python main.py --n cardene --age 30
  • ArgumentParserクラスを使用して、プログラムの説明と引数を定義します。

import argparse
parser = argparse.ArgumentParser(
                    prog='ProgramName',
                    description='What the program does',
                    epilog='Text at the bottom of help')
  • add_argument メソッドを使って、引数を定義します。

  • 引数の名前、オプション、型、デフォルト値などを指定することができます。

parser.add_argument("--age", type=int, default=30, help="年齢")
parser.add_argument("--favorite_color", choices=["red", "green", "blue"], help="好きな色")
_StoreAction(option_strings=['--favorite_color'], dest='favorite_color', nargs=None, const=None, default=None, type=None, choices=['red', 'green', 'blue'], required=False, help='好きな色', metavar=None)

Note

Google Colab で Drive をマウントし、ディレクトリを変更するには、以下の手順を実行します。

  • 以下のコードを実行して、Drive をマウントします。

from google.colab import drive drive.mount('/content/drive')

  • os.chdir() 関数を使用してディレクトリを変更できます。