Python 如何在没有双斜杠的情况下获得相对于项目根的绝对路径?
我定义此函数以获取相对于项目根的绝对路径:Python 如何在没有双斜杠的情况下获得相对于项目根的绝对路径?,python,django,Python,Django,我定义此函数以获取相对于项目根的绝对路径: def relpath(*x): return os.path.normpath(os.path.join(os.path.dirname(__file__), '..', *x)) GET_PATH = ( relpath('django/dir/'), #tuple ) 问题是我得到的路径带有双斜杠(在Windows上),如下所示: C:\\\\Users\\\\Fuiba\\\\Desktop\\\\Apps\\\\djan
def relpath(*x):
return os.path.normpath(os.path.join(os.path.dirname(__file__), '..', *x))
GET_PATH = (
relpath('django/dir/'), #tuple
)
问题是我得到的路径带有双斜杠(在Windows上),如下所示:
C:\\\\Users\\\\Fuiba\\\\Desktop\\\\Apps\\\\django\\\\dir
为什么要用4个斜杠来获取路径?有没有办法避免这种行为,或者我可以删除重复的斜杠
谢谢 虽然我无法重复您的问题,但您可以使用string方法
replace
,删除额外的空格:
s = 'C:\\\\Users\\\\Fuiba\\\\Desktop\\\\Apps\\\\django\\\\dir'
print(s.replace('\\\\','\\')) #C:\Users\Fuiba\Desktop\Apps\django\dir
虽然我无法重复您的问题,但您可以使用string方法
replace
,删除额外的空格:
s = 'C:\\\\Users\\\\Fuiba\\\\Desktop\\\\Apps\\\\django\\\\dir'
print(s.replace('\\\\','\\')) #C:\Users\Fuiba\Desktop\Apps\django\dir
在我的django项目中,我使用的是unipath。它简化了很多 尝试使用
这真的很好,而且可以自我解释。在我的django项目中,我使用的是unipath。它简化了很多 尝试使用
这真的很好,可以自我解释。如果我不清楚,我很抱歉。当我使用tuple时,4被砍掉了。(我编辑了我的问题)谢谢你的回答。我试过:
s=relpath('django/dir/')GET\u PATH=(s.replace('\\\\','\\'),)
但不起作用。不幸的是,我仍然不能重复你的问题:你的代码(不使用replace
)给了我两条斜线,像这样:(C:\\Users\\Fuiba\\Desktop\\Apps\\django\\dir,)
如果我不清楚,我很抱歉。当我使用tuple时,4被砍掉了。(我编辑了我的问题)谢谢你的回答。我试过:s=relpath('django/dir/')GET\u PATH=(s.replace('\\\\','\\'),)
,但不起作用。不幸的是,我仍然不能重复你的问题:你的代码(不使用replace
)给了我两条斜线,像这样:(C:\\Users\\Fuiba\\Desktop\\Apps\\django\\dir,)