【问题标题】:Adding a relative path to an absolute path in python [duplicate]在python中将相对路径添加到绝对路径[重复]
【发布时间】:2018-10-18 16:56:44
【问题描述】:

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

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

如何在没有../..s 的情况下将这两条路径“添加”在一起,是否有一个模块可以做到这一点?到目前为止我找不到任何东西。我正在考虑这样的格式:

mypath = some_module.function(abspath, relpath)

而不是做

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

我觉得太麻烦了。

【问题讨论】:

    标签: python filenames relative-path


    【解决方案1】:

    你可以join他们并使用normpath

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

    来自normpath文档:

    通过折叠冗余分隔符和上级来规范化路径名 引用,以便 A//B、A/B/、A/./B 和 A/foo/../B 都变为 A/B。


    从 Python 3.4 开始,您也可以使用 pathlib 模块:

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

    【讨论】:

    • 谢谢!这就是我想知道的!
    猜你喜欢
    • 2012-10-27
    • 1970-01-01
    • 1970-01-01
    • 2014-03-14
    • 1970-01-01
    • 2013-11-30
    • 2011-04-02
    • 1970-01-01
    • 2011-04-05
    相关资源
    最近更新 更多