Pythonで、ファイル名を出力してくれる__file__
は、対話モードで実行するとエラーになります。
> python Python 3.7.1 (default, Dec 10 2018, 22:54:23) [MSC v.1915 64 bit (AMD64)] :: Anaconda, Inc. on win32 Type "help", "copyright", "credits" or "license" for more information. >>> print(__file__) Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name '__file__' is not defined
対話モードなので、ファイルなんてないので当然といえば当然なエラーでしょうか。
ファイルで実行するときちんと出力してくれます。
# sample.py import os print(__file__) a = os.path.dirname(os.path.abspath(__file__)) print(a) a = os.path.dirname(os.path.abspath("__file__")) print(a)
> python sample.py
sample.py
C:\Users\XXXX\workspace
C:\Users\XXXX\workspace