第一步:首先看各个path参数中有无以【盘符:】或【】开头的字符串(前面除了【盘符:】不能有其他),如果没有,就会把所有参数保留,参数之间有分隔。
第二步:如果有以【盘符:】开头的字符串,(假如有多个),从最后一个开始保留。
第三步:如果有以【】开头的字符串,(假如有多个),从最后一个开始保留。
拔高
【盘符:】的优先级在【】之前,因此如果存在【盘符:】,则之前的带有【】开头的字符串会被抛弃。如果最后的以【盘符:】开头的字符串后面带有【path1】,并且后面还有【】开头的字符串(比如【path2】),那么path1以及后续知道path2之前的字符串都会被抛弃。
二、代码实现只需要第一步判断,就可以出最终结果的代码示例如下:
print(os.path.join("BaiduNetdiskDownload","test1","test2"))
# BaiduNetdiskDownloadtest1test2
下面是有多个以【盘符:】开头的字符串代码示例:
print(os.path.join(r"D:BaiduNetdiskDownload", r"C:", "test1", r"D:", "test2")) # D:test2
下面是有多个以【】开头的字符串代码示例:
print(os.path.join(r"BaiduNetdiskDownload", r"test1", "test2")) # D:test1test2
下面是以【盘符:path1】开头的字符串中的path1部分被后续的path2部分替代的示例:
print(os.path.join(r"D:BaiduNetdiskDownload", r"test1")) # D:test1
下面是有多个以【盘符:】和多个【】开头字符串代码示例:
print(os.path.join(r"D:BaiduNetdiskDownload", "C:", r"test1", "test1.1", r"test2", "test3")) # C:test2test3三、补充知识
举一个路径例子:【D:ChromeCoreDownloads】,其中【】代表路径分隔符。
而如果路径中包含双点号,例如【D:ChromeCoreDownloadstest1..test2】,那么这个【..】就是对上一级目录的引用,也就是说【D:ChromeCoreDownloadstest1..test2】的标准化路径(真实路径,也称绝对路径abspath)就是【D:ChromeCoreDownloadstest2】。
print(os.path.realpath(r'D:ChromeCoreDownloadstest1..test2')) print(os.path.abspath(r'D:ChromeCoreDownloadstest1..test2')) print(os.path.normpath(r'D:ChromeCoreDownloadstest1..test2')) # 上面3行的输出结果都是D:ChromeCoreDownloadstest2四、参考来源
os.path --- 常用路径操作 — Python 3.10.2 文档
python路径拼接os.path.join()函数完全教程_开贰锤-CSDN博客_python路径拼接
Python os.path.join()用法及代碼示例 - 純淨天空



