Python os.path.dirname(os.path.abspath(_文件__))和os.path.dirname(_文件__)之间的差异
我是Django项目的初学者。 Django项目的Settings.py文件包含以下两行:Python os.path.dirname(os.path.abspath(_文件__))和os.path.dirname(_文件__)之间的差异,python,django,os.path,Python,Django,Os.path,我是Django项目的初学者。 Django项目的Settings.py文件包含以下两行: BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__)) 我想知道两者的区别,因为我认为两者都指向同一个目录。如果您能提供一些os.path函数的链接,那将非常有帮助。BASE\u DIR指向PROJECT
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__))
我想知道两者的区别,因为我认为两者都指向同一个目录。如果您能提供一些os.path函数的链接,那将非常有帮助。
BASE\u DIR
指向PROJECT\u ROOT
的父目录。您可以将这两个定义重新编写为:
PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__))
BASE_DIR = os.path.dirname(PROJECT_ROOT)
因为只需删除路径的最后一段
在上面,文件名指向当前模块的文件名,请参见:
\uuuuu file\uuuu
是从中加载模块的文件的路径名(如果模块是从文件加载的)
但是,它可以是一个相对路径,因此在删除文件名并存储模块所在目录的完整路径之前,可以使用将其转换为绝对路径。您是否尝试过这两个路径并进行比较?否,它们没有指向同一个目录。