嘿。我有一个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
但这特别可怕,让我做恶梦。有没有更好的方法来实现我想要实现的不会感觉如此肮脏的东西?我觉得我错过了一些非常明显的东西。提前谢谢。
答案 0 :(得分:2)
而不是:
path = os.path.abspath(__file__)[:-8]
使用:
path = os.path.dirname(os.path.abspath(__file__))
请参阅文档here。