我怎样才能从另一个人那里得到相对路径?

How can i get a path relative from an other?

我有一个来自 path2 的 path1 亲戚,我想从我的脚本中获取这个 path1,它不是 path1 或 path2。我知道 path2 的绝对路径。

您可以为此使用 os.relpath 函数:

os.path.relpath(path[, start])

Return a relative filepath to path either from the current directory or from an optional start directory. This is a path computation: the filesystem is not accessed to confirm the existence or nature of path or start.

所以你可以调用:

>>> relpath('/home/foo/bar', '/home/qux')
'../foo/bar'

因此您可以通过相对路径 ../foo/bar.

/home/qux 访问 /home/foo/bar

或者您的情况:

replath(path2, path_of_script)

其中 path2 是绝对路径。

自己做了函数

import pathlib

def convert_path(path, org_path):
    org_path = pathlib.Path(org_path).parent # need the folder where my file is
    for element in path.split(os.path.sep):
        if element == "..":
            org_path = org_path.parent
        else:
            org_path = org_path.joinpath(element)
    return str(org_path)