如果你不知道你的起点,用Python相对访问文件?

时间:2009-12-28 01:59:37

标签: python

嘿。我有一个Python项目,其目录布局如下:

root
  |-bin
  |-conf
  |-[project]

[project]中的Python文件需要能够从'conf'目录中读取配置数据,但我无法保证root的位置,而且它可以在Linux,Mac和Windows机器上使用,所以我正在尝试从根目录中相对地处理conf目录。

当它使用脏黑客时(从root / bin,特定的python文件名是8个字符长):

path = os.path.abspath(__file__)[:-8]
os.chdir(path)
os.chdir("..")
[projectclass].config('config/scans.json') #for example

但这特别可怕,让我做恶梦。有没有更好的方法来实现我想要实现的不会感觉如此肮脏的东西?我觉得我错过了一些非常明显的东西。提前谢谢。

1 个答案:

答案 0 :(得分:2)

而不是:

path = os.path.abspath(__file__)[:-8]

使用:

path = os.path.dirname(os.path.abspath(__file__))

请参阅文档here