0

我想根据用户定义的路径获取绝对路径,这样当我这样做时os.path.join('whatever', '/file')它会返回USERPATH/file'.

现在它返回/file(假设它是绝对路径)

有没有办法告诉 os.path.join 哪个应该是根路径?(所以当它认为某事是绝对路径时,它会在此根路径之前添加)

我想做的事:

> # Do something to set the root path to USERPATH

> os.path.join('folder','file')
folder/file
> os.path.join('folder','/file')
USERPATH/file
> os.path.join('/folder','file')
USERPATH/folder/file
> os.path.join('/folder','/file')
USERPATH/file
4

2 回答 2

1

从技术上讲有两种方法:monkeypatchos.path模块,或者使用chroot系统调用。不幸的是,这也会改变 Python 上的所有其他路径处理,并且还会使您的程序可能无法运行。

于 2015-02-24T06:43:47.453 回答
0

如果你想先基于绝对路径检查,然后连接你想要的任何东西:

import os
f = os.path.join('whatever', '/file')
if os.path.isabs(f):
    pth = "USERPATH/{}".format(f)
于 2015-02-22T16:18:12.747 回答