一文字 カット に挑戦!【 Python OpenCV 】
k.w
SEへの道
Pythonでコードを記述していると、汎用的に使えそうなコードを作成することがあると思います。
その場合、毎回、同じコードを別のPythonコードに記述しては無駄ですし、何より編集したい場合、記述したコードの数だけ修正しなければなりません。
その手間の対応を説明します!
Pythonで別のPythonコードを参照する方法はいくつかあります。主に次のような方法が考えられます。
Pythonファイル(モジュール)をインポートすることで、そのファイルに定義されている関数やクラスを使用できます。
例えば、module.py
というファイルにある関数を main.py
で使用したい場合、main.py
で以下のように記述します。
1import module
2module.function_name()
複数のモジュールをディレクトリにまとめてパッケージとして扱うことができます。
パッケージ内のモジュールを使うには、そのパッケージをインポートして、必要なモジュールを指定します。
例えば、mypackage
というディレクトリに module.py
がある場合。
1from mypackage import module
2module.function_name()
パッケージ内のモジュール間で相互にインポートする場合、相対インポートを使うことができます。
同じ階層にあるモジュールをインポートする場合は、以下のように記述します。
1from .module import function_name
Pythonの検索パスにディレクトリを追加することで、そのディレクトリ内のモジュールを自由にインポートできるようになります。sys.path
にディレクトリのパスを追加することで実現できます。
1import sys sys.path.append('/path/to/directory')
2import module
ファイルパスが一つ上の階層の場合は、以下となります。
1import sys
2import os
3
4# カレントディレクトリの親ディレクトリのパスを取得
5parent_dir = os.path.dirname(os.getcwd())
6# sys.path に親ディレクトリを追加
7sys.path.append(parent_dir)
8
9# 親ディレクトリにある module.py をインポート
10import module
これらの方法を使って、Pythonのコード間で機能を共有したり、モジュールを再利用したりすることができます。
どの方法を選ぶかは、コード全体の記述形態に依存しますが、パターンを覚えておくことで使いこなしてください!