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