用python构建路径

用python构建路径,python,django,Python,Django,决心: 'DIRS': [os.path.join( os.path.dirname(os.path.dirname(os.path.abspath(__file__))), 'templates')], 我需要对may代码做什么更改才能使DIRS解析为以下内容 '/opt/python/current/app/src/myproject/templates' 打印(os.path.join(os.path.dirname(os.path.abspath(os.path.dirn

决心:

'DIRS': [os.path.join(
      os.path.dirname(os.path.dirname(os.path.abspath(__file__))), 'templates')],
我需要对may代码做什么更改才能使DIRS解析为以下内容

'/opt/python/current/app/src/myproject/templates'

打印(os.path.join(os.path.dirname(os.path.abspath(os.path.dirname(文件)),“模板”))

打印(os.path.join(os.path.dirname(os.path.abspath(os.path.dirname(文件),“模板”)

pathlib。它类似于
os.path
,但实现为一个适合方法链接的类

'/opt/python/current/app/src/templates'

模板
仍然是一个
路径
对象。一些API接受路径,但您也可以执行
templates=str(templates)
来获取路径字符串。

pathlib
可以简化此操作。它类似于
os.path
,但实现为一个适合方法链接的类

'/opt/python/current/app/src/templates'

模板
仍然是一个
路径
对象。一些API接受路径,但是你也可以通过模板来获取路径字符串。

因为
os.Path.dirname
获取指定文件的目录名(在你的例子中,
\uuuu file\uuu
,你可以看到int的意思),你将获得该文件的父目录

现在
os.path.abspath
用文件名获取当前工作目录的绝对路径

最后一个
os.path.join
通过连接两条路径来工作。例如,如果您位于
/opt/python/current/app/src/myproject/
中,并且希望将
模板
文件夹加入到该路径,则您可以执行os.path.join(
/opt/python/current/app/src/myproject/
模板

所以,为了得到你需要的,你需要做的就是得到你需要的

'DIRS':[os.path.join(
os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(___())))),
‘模板’)
],
os.path.abspath
获取
\uuuuu文件的绝对规范化路径
,然后它使用第一个
os.path.dirname
(最内层)获取父目录,第二个获取结果路径父目录,依此类推


如果通过使用两个
os.path.dirname
获得
/opt/python/current/app/src/myproject/templates
,这意味着您还需要一个
os.path.dirname
来实现所需的功能。

因为
os.path.dirname
获取指定文件的目录名(在您的示例中,您可以看到int的含义)您将获得该文件的父目录

现在
os.path.abspath
用文件名获取当前工作目录的绝对路径

最后一个
os.path.join
通过连接两个路径来工作。例如,如果您位于
/opt/python/current/app/src/myproject/
中,并且希望将
templates
文件夹连接到您执行os.path.join操作的路径(
/opt/python/current/app/src/myproject/
templates

所以,为了得到你需要的,你需要做的就是得到你需要的

'DIRS':[os.path.join(
os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(___())))),
‘模板’)
],
os.path.abspath
获取
\uuuuu文件的绝对规范化路径
,然后它使用第一个
os.path.dirname
(最内层)获取父目录,第二个获取结果路径父目录,依此类推


如果通过使用两个
os.path.dirname
你得到
/opt/python/current/app/src/myproject/templates
,这意味着你还需要一个
os.path.dirname
来实现你想要的目标。

你能发布原始的
\uuuuuuuuuuuuuuuuuu文件值吗。。。或者它的abspath,真的。我没有将文件传递到此中。您使用了
\uuuu file\uuuu
,您可以打印绝对路径以用作测试输入。这将使这成为一个可重复的问题,我们可以用于测试。否则,我们必须自己发明一个路径名并尝试它。请参阅我的答案以获取示例。我猜测而不是验证,因为我没有样本输入。你能发布原始的
\uuu文件\uuu
值吗。。。或者它的abspath,真的。我没有将文件传递到此中。您使用了
\uuuu file\uuuu
,您可以打印绝对路径以用作测试输入。这将使这成为一个可重复的问题,我们可以用于测试。否则,我们必须自己发明一个路径名并尝试它。请参阅我的答案以获取示例。我猜测而不是验证,因为我没有样本输入。