代码之家  ›  专栏  ›  技术社区  ›  Rocky Li

在python中向绝对路径添加相对路径[duplicate]

  •  -1
  • Rocky Li  · 技术社区  · 7 年前

    假设我有一条绝对路径和一条相对路径

    abspath = os.path.abspath(__file__)
    relpath = '../../folder/file'
    

    ../..

    mypath = some_module.function(abspath, relpath)
    

    而不是

    mypath = os.path.join(os.path.dirname(os.path.dirname(abspath))), folder, file)
    

    1 回复  |  直到 7 年前
        1
  •  2
  •   Thierry Lathuille    7 年前

    你可以 join 使用它们 normpath :

    os.path.normpath(os.path.join(abspath, relpath))
    

    normpath

    通过折叠冗余分隔符和更高级别来规范化路径名 引用,使A//B、A/B/、A//B和A/foo//B都成为A/B。


    你也可以用 pathlib 自Python 3.4以来的模块:

    from pathlib import Path
    
    abspath = Path('/home/xxxx/yyy')
    relpath = Path('../../folder/file')
    (abspath / relpath).resolve()
    # PosixPath('/home/xxxx')