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
など)から実行して、どのような違いがあるのかを確認してください。