python3 joinPath().py

"""
模块:python3 joinPath().py
功能:python3 路径拼接。
"""
import os


def joinPath(filepath, urisInFilepath):
    """
    根据文件路径,拼接出该文件内相对路径 uri 的绝对路径。
    文件内 相对路径 uri 是相对于 文件路径的。
    注:此函数更改了原始列表 urisInFilepath。
    :param filepath: 文件路径,如:http://lab.earthsdk.com/ge/tileset.json
    :param urisInFilepath: 文件 filepath 内的相对路径的列表,如:
    ["./BulkMetadata/pb=!1m2!1s1262!2u866.json", "./NodeData/pb=!1m2!1s1262!2u866!2e1!3u844!4b0.b3dm"]
    :return: None
    """
    fileDir = os.path.dirname(filepath)
    print("\nfileDir:", fileDir)
    # fileDir: http://lab.earthsdk.com/ge
    for i in range(len(urisInFilepath)):
        if urisInFilepath[i].count("../"):
            back = urisInFilepath[i].count("../")
            r2 = urisInFilepath[i][back * 3:]
            urisInFilepath[i] = "/".join(fileDir.split("/")[:-back]) + "/" + r2
        elif urisInFilepath[i].count("./"):
            # "./",在相对路径中,通常只有一个。
            r2 = urisInFilepath[i][2:]
            urisInFilepath[i] = fileDir + "/" + r2
        else:
            urisInFilepath[i] = fileDir + "/" + urisInFilepath[i]


if __name__ == "__main__":
    filepath = "http://lab.earthsdk.com/ge/tileset.json"
    urisInFilepath = ["./BulkMetadata/pb=!1m2!1s1262!2u866.json",
                     "./NodeData/pb=!1m2!1s1262!2u866!2e1!3u844!4b0.b3dm"]
    joinPath(filepath, urisInFilepath)
    print("urisInFilepath:", urisInFilepath)
    # urisInFilepath: [
    # 'http://lab.earthsdk.com/ge/BulkMetadata/pb=!1m2!1s1262!2u866.json',
    # 'http://lab.earthsdk.com/ge/NodeData/pb=!1m2!1s1262!2u866!2e1!3u844!4b0.b3dm']

    # 2.
    filepath = 'http://lab.earthsdk.com/ge/BulkMetadata/pb=!1m2!1s1262!2u866.json'
    urisInFilepath = ["./pb=!1m2!1s12624360!2u866.json",
                     "../NodeData/pb=!1m2!1s12624360!2u849!2e1!3u708!4b0.b3dm"]
    joinPath(filepath, urisInFilepath)
    print("urisInFilepath:", urisInFilepath)
    # fileDir: http://lab.earthsdk.com/ge/BulkMetadata
    # urisInFilepath: ['http://lab.earthsdk.com/ge/BulkMetadata/pb=!1m2!1s12624360!2u866.json', 'http://lab.earthsdk.com/ge/NodeData/pb=!1m2!1s12624360!2u849!2e1!3u708!4b0.b3dm']

    # 3.
    filepath = "ge/tileset.json"
    urisInFilepath = ['./BulkMetadata/pb=!1m2!1s2062!2u866.json',
                     './NodeData/pb=!1m2!1s2062!2u866!2e1!3u844!4b0.b3dm']
    joinPath(filepath, urisInFilepath)
    print("urisInFilepath:", urisInFilepath)
    # fileDir: ge
    # urisInFilepath: ['ge/BulkMetadata/pb=!1m2!1s2062!2u866.json',
    # 'ge/NodeData/pb=!1m2!1s2062!2u866!2e1!3u844!4b0.b3dm']

发布了197 篇原创文章 · 获赞 61 · 访问量 11万+

猜你喜欢

转载自blog.csdn.net/weixin_42193179/article/details/105511549