我不断看到参考说:
“人们做聪明的事
__file__
”
主要是在 python 包装和包装大战的背景下。
我猜我遗漏了一些东西,因为据我所知,这只是指定文件名和路径的模型的一个属性,正如这个SO question中所解释的那样
有什么特别之处__file__
?人们用它做的“聪明的事情”有哪些例子?
我不断看到参考说:
“人们做聪明的事
__file__
”
主要是在 python 包装和包装大战的背景下。
我猜我遗漏了一些东西,因为据我所知,这只是指定文件名和路径的模型的一个属性,正如这个SO question中所解释的那样
有什么特别之处__file__
?人们用它做的“聪明的事情”有哪些例子?
如果您想通过将项目目录放在 PYTHONPATH 下来加载您正在处理import
的代码,并且代码取决于您存储在项目目录中的数据文件,您可以使用它__file__
来获取项目位置并检索数据。
我喜欢通过 加载我工作的所有内容import
,但我的同事从命令行运行我在他们的项目目录中提供的脚本。因此,在这些脚本中,我使用getwd
如下定义的函数来获取项目文件的正确位置,而不管脚本如何运行:
import os
def getwd():
return os.path.dirname(__file__) if '__file__' in globals() else os.getcwd()
当我通过 加载脚本时import
,getwd
返回脚本的目录。当我的同事从项目目录中的命令行运行脚本时,没有 global __file__
,getwd
只是返回当前目录。