Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何创建具有点起点的pathlib相对路径?_Python_Django_Environment Variables_Pathlib - Fatal编程技术网

Python 如何创建具有点起点的pathlib相对路径?

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

我需要创建一个相对路径,以当前目录作为“.”点开始

例如,在windows中,“\envs\.some.env”或其他地方的“/envs/.some.env”

我想用pathlib做这个。找到了一个解决方案,但它有一个笨拙的replace语句。使用pathlib有更好的方法吗

使用django Enviro,目标是支持多个env文件。工作文件夹包含一个envs文件夹,其中包含多个env文件

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()
vs
Path('.\\envs\\.some.env').open()
这样的常用用法,它们应该是相同的。`.\`是当前目录,可以省略。感谢您的快速响应。使用django环境模块,我能使其工作的唯一方法是使用当前目录的点。然后我想迁移到一个pathlib解决方案。是的,这会起作用,而且在某些地方操作系统库比pathlib具有更多的功能。这可能是其中一个地方。我想知道是否有一种pathlib方法可以解决这个问题。我刚才有一个确切的问题,因为我正在创建一个路径,传递给nodejs
require()
语句,其中
/something.js
something.js
的解释不同。为什么
envs\.some.env
不够?对于像
Path('envs\\.some.env').open()
vs
Path('.\\envs\\.some.env').open()
这样的常用用法,它们应该是相同的。`.\`是当前目录,可以省略。感谢您的快速响应。使用django环境模块,我能使其工作的唯一方法是使用当前目录的点。然后我想迁移到一个pathlib解决方案。是的,这会起作用,而且在某些地方操作系统库比pathlib具有更多的功能。这可能是其中一个地方。我想知道是否有一种pathlib方法可以解决这个问题。我刚才有一个确切的问题,因为我正在创建一个路径,传递给nodejs
require()
语句,其中
/something.js
something.js
的解释不同。