0

我不断看到参考说:

“人们做聪明的事__file__

主要是在 python 包装和包装大战的背景下。

我猜我遗漏了一些东西,因为据我所知,这只是指定文件名和路径的模型的一个属性,正如这个SO question中所解释的那样

有什么特别之处__file__?人们用它做的“聪明的事情”有哪些例子?

4

1 回答 1

3

如果您想通过将项目目录放在 PYTHONPATH 下来加载您正在处理import的代码,并且代码取决于您存储在项目目录中的数据文件,您可以使用它__file__来获取项目位置并检索数据。

我喜欢通过 加载我工作的所有内容import,但我的同事从命令行运行我在他们的项目目录中提供的脚本。因此,在这些脚本中,我使用getwd如下定义的函数来获取项目文件的正确位置,而不管脚本如何运行:

import os
def getwd():
    return os.path.dirname(__file__) if '__file__' in globals() else os.getcwd()

当我通过 加载脚本时importgetwd返回脚本的目录。当我的同事从项目目录中的命令行运行脚本时,没有 global __file__getwd只是返回当前目录。

于 2013-06-12T19:46:01.543 回答