是否可以更改os.path.join根路径?

时间:2015-02-22 16:11:05

标签: python path os.path

我希望根据用户定义的路径获取绝对路径,这样当我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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

如果你想先根据某个绝对路径检查进行前置检查,那么可以根据需要进行连接:

import os
f = os.path.join('whatever', '/file')
if os.path.isabs(f):
    pth = "USERPATH/{}".format(f)