Это как сказал Свен.
MiLu@Dago: /tmp > cat file.py
import sys
import blub
print __file__
print sys.argv[0]
MiLu@Dago: /tmp > cat blub.py
import sys
print "BLUB: " + __file__
print "BLUB: " + sys.argv[0]
MiLu@Dago: /tmp > python file.py
BLUB: /tmp/blub.pyc
BLUB: file.py
file.py
file.py
Я думал, что __file__
было заменено именем файла во время шага препроцессора.Я не был на 100% уверен, что это действительно так в Python - но это в C / C ++ и Perl.В Python это может отличаться, поскольку __file__
также правильно для скомпилированных файлов Python (pyc
), и, похоже, в содержимом этого файла нет никаких следов имени файла.