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() 関数を使用してディレクトリを変更できます。