在python中使用__file__做聪明的事情(他们在谈论什么?)

时间:2013-06-12 19:06:48

标签: python python-module

我一直看到引用说的话:

  

“人们用__file__做聪明的事”

主要是在python包装and packaging wars的上下文中。

猜猜我错过了什么,因为据我所知,这只是指定文件名和路径的模型的属性,如SO question

中所述

__file__有什么特别之处,以及人们用它做“聪明事”的例子是什么?

1 个答案:

答案 0 :(得分:2)

如果您希望通过将项目目录放在PYTHONPATH下来加载通过import工作的代码,并且代码依赖于您存储在项目目录中的数据文件,则可以使用{{ 1}}获取项目位置并检索数据。

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

getwd

当我通过import os def getwd(): return os.path.dirname(__file__) if '__file__' in globals() else os.getcwd() 加载脚本时,import返回脚本的目录。当我的同事从项目目录中的命令行运行脚本时,没有全局getwd__file__只返回当前目录。