私は次のようなことを言っている参照を見続けています:
「スマートなことをしている人々
__file__
」
主に python のパッケージングとパッケージング戦争のコンテキストで。
このSOの質問で説明されているように、これはファイル名とパスを指定するモデルの属性にすぎないことがわかる限り、何かが足りないと思います
何がそんなに特別で__file__
、人々がそれを使って行っている「賢いこと」の例は何ですか?
私は次のようなことを言っている参照を見続けています:
「スマートなことをしている人々
__file__
」
主に python のパッケージングとパッケージング戦争のコンテキストで。
このSOの質問で説明されているように、これはファイル名とパスを指定するモデルの属性にすぎないことがわかる限り、何かが足りないと思います
何がそんなに特別で__file__
、人々がそれを使って行っている「賢いこと」の例は何ですか?
import
プロジェクト ディレクトリを PYTHONPATH の下に置くことで作業中のコードをロードしたい場合、およびコードがプロジェクト ディレクトリに保存したデータ ファイルに依存している場合は、 を使用__file__
してプロジェクトの場所を取得し、データを取得できます。
私は自分が取り組んでいるすべての作業を 経由import
でロードするのが好きですが、同僚は私が与えたスクリプトをコマンド ラインからプロジェクト ディレクトリ内で実行します。したがって、これらのスクリプトでは、getwd
次のように定義された関数を使用して、スクリプトの実行方法に関係なく、プロジェクト ファイルの正しい場所を取得します。
import os
def getwd():
return os.path.dirname(__file__) if '__file__' in globals() else os.getcwd()
import
経由でスクリプトをロードすると、スクリプトgetwd
のディレクトリが返されます。同僚がプロジェクト ディレクトリ内のコマンド ラインからスクリプトを実行すると、 global はなく__file__
、getwd
単に現在のディレクトリが返されます。