__file__ 変数は何を意味し、何をしますか? 質問する

__file__ 変数は何を意味し、何をしますか? 質問する
import os

A = os.path.join(os.path.dirname(__file__), '..')

B = os.path.dirname(os.path.realpath(__file__))

C = os.path.abspath(os.path.dirname(__file__))

os.path私は通常、これらを実際のパスにハードワイヤリングします。しかし、実行時にパスを決定するこれらのステートメントには理由があり、モジュールを理解して使い始めたいと思います。

ベストアンサー1

Pythonでファイルからモジュールがロードされると__file__絶対パス。これを他の関数と組み合わせて使用​​することで、ファイルが配置されているディレクトリを見つけることができます。

例を一つずつ見ていきましょう。

A = os.path.join(os.path.dirname(__file__), '..')
# A is the parent directory of the directory where program resides.

B = os.path.dirname(os.path.realpath(__file__))
# B is the canonicalised (?) directory where the program resides.

C = os.path.abspath(os.path.dirname(__file__))
# C is the absolute path of the directory where the program resides.

ここで、返されるさまざまな値を確認できます。

import os
print(__file__)
print(os.path.join(os.path.dirname(__file__), '..'))
print(os.path.dirname(os.path.realpath(__file__)))
print(os.path.abspath(os.path.dirname(__file__)))

./text.pyそして、さまざまな場所 ( 、~/python/text.pyなど)から実行して、どのような違いがあるのか​​を確認してください。

おすすめ記事