""" 模块: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']
python3 joinPath().py
猜你喜欢
转载自blog.csdn.net/weixin_42193179/article/details/105511549
今日推荐
周排行