__file__和sys.argv [0]之间的区别

use*_*312 24 python

之间有什么区别:

__file__

sys.argv[0]

因为两者似乎都在做同样的事情:他们拥有脚本的名称.

如果没有差别,那么为什么__file__几乎所有的地方都使用它,而我从未见过sys.argv[0]被使用过.

Sve*_*ach 21

__file__是当前文件的名称,如果您在模块内部或者使用execfile()而不是通过调用启动脚本,则该文件可能与主脚本不同python scriptname.py. __file__ 通常是你更安全的赌注.


Ach*_*him 7

如果您在 python 程序的“主”脚本中,这只是相同的。如果您导入其他文件,__file__将包含该文件的路径,但 sys.argv 仍将保留相同的值。