Python 如何创建具有点起点的pathlib相对路径?
我需要创建一个相对路径,以当前目录作为“.”点开始 例如,在windows中,“\envs\.some.env”或其他地方的“/envs/.some.env” 我想用pathlib做这个。找到了一个解决方案,但它有一个笨拙的replace语句。使用pathlib有更好的方法吗 使用django Enviro,目标是支持多个env文件。工作文件夹包含一个envs文件夹,其中包含多个env文件Python 如何创建具有点起点的pathlib相对路径?,python,django,environment-variables,pathlib,Python,Django,Environment Variables,Pathlib,我需要创建一个相对路径,以当前目录作为“.”点开始 例如,在windows中,“\envs\.some.env”或其他地方的“/envs/.some.env” 我想用pathlib做这个。找到了一个解决方案,但它有一个笨拙的replace语句。使用pathlib有更好的方法吗 使用django Enviro,目标是支持多个env文件。工作文件夹包含一个envs文件夹,其中包含多个env文件 import environ from pathlib import Path import os do
import environ
from pathlib import Path
import os
domain_env = Path.cwd()
dotdot = Path("../")
some_env = dotdot / "envs" / ".some.env"
envsome = environ.Env()
envsome.read_env(envsome.str(str(domain_env), str(some_env).replace("..", ".")))
print(str(some_env))
print(str(some_env).replace("..", "."))
dot = Path("./") # Path(".") gives the same result
some_env = dot / "envs" / ".some.env"
print(str(some_env))
在windows上提供:
..\envs\.some.env
.\envs\.some.env
envs\.some.env
为什么
envs\.some.env
不够?对于像Path('envs\\.some.env').open()
vsPath('.\\envs\\.some.env').open()
这样的常用用法,它们应该是相同的。`.\`是当前目录,可以省略。感谢您的快速响应。使用django环境模块,我能使其工作的唯一方法是使用当前目录的点。然后我想迁移到一个pathlib解决方案。是的,这会起作用,而且在某些地方操作系统库比pathlib具有更多的功能。这可能是其中一个地方。我想知道是否有一种pathlib方法可以解决这个问题。我刚才有一个确切的问题,因为我正在创建一个路径,传递给nodejsrequire()
语句,其中/something.js
和something.js
的解释不同。为什么envs\.some.env
不够?对于像Path('envs\\.some.env').open()
vsPath('.\\envs\\.some.env').open()
这样的常用用法,它们应该是相同的。`.\`是当前目录,可以省略。感谢您的快速响应。使用django环境模块,我能使其工作的唯一方法是使用当前目录的点。然后我想迁移到一个pathlib解决方案。是的,这会起作用,而且在某些地方操作系统库比pathlib具有更多的功能。这可能是其中一个地方。我想知道是否有一种pathlib方法可以解决这个问题。我刚才有一个确切的问题,因为我正在创建一个路径,传递给nodejsrequire()
语句,其中/something.js
和something.js
的解释不同。