__file__およびos.path.abspath(__ file__)およびos.path.dirname(os.path.abspath(__ file__))



__file__ Os Path



Pythonを使用してインターフェースを自動化する過程で、osモジュールの下のパスに関連する問題が発生しました。具体的な使い方はわかりません。今それを整理します
遭遇した例は次のとおりです
それらをインポートする
使用法1:
basedir = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath( ファイル )))))
sys.path.append(basedir)
print(basedir)

使用法2:
datapath = os.path.join(os.path.dirname(os.path.dirname(os.path.abspath( ファイル )))、「データ」)
print(os.path.dirname(os.path.dirname(os.path.abspath( ファイル )))))
print(datapath)



これらの2つの使用法を理解するには、ステップバイステップで行う必要があります
1. print(について話しましょう ファイル )#現在実行されている.pyファイルのパスを出力します
画像
2. os.path.dirname(について話しましょう ファイル )#現在実行されているファイルのパスのディレクトリ部分を取得します
画像
3. os.path.basenameについて話しましょう( ファイル ):現在実行されているファイルのファイル名の部分を取得します
画像
4. print(os.path.abspath( ファイル ))#現在実行されているファイルの絶対パスに移動します
画像
5.次はより好ましい組み合わせクエリです
print(os.path.dirname(os.path.abspath( ファイル )))#現在の絶対パスのディレクトリ部分を取得します
画像
6.print(os.path.dirname(os.path.dirname(os.path.abspath( ファイル ))))#もう1つのレイヤーを取り戻す
画像
7.print(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath( ファイル )))))#このレイヤーがプロジェクトのルートパスになるまで、もう1つのレイヤーをフェッチします
画像
8.次へ:プロジェクトのルートパスに変数を配置して、それをポイントします
basedir = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath( ファイル )))))
それを私のシステムのパスに追加します
sys.path.append(basedir)
画像
9.最後はos.path.join(path、** path)についてです
data = os.path.join(basedir、 ' data')
ここで注意すべきことは、**パスにはスラッシュ/ユニットを含めることはできず、パス名だけを含めることができるということです。
画像
画像
とりあえずここにいます、お役に立てれば幸いです~~