python,路径拼接,字符串拼接,os.path.join()函数怎么用?
python,路径拼接,字符串拼接,os.path.join()函数怎么用?
一、os.path.join()函数的基本规则
第一步:首先看各个path参数中有无以【盘符:】或【\】开头的字符串(\前面除了【盘符:】不能有其他),如果没有,就会把所有参数保留,参数之间有\分隔。
第二步:如果有以【盘符:】开头的字符串,(假如有多个),从最后一个开始保留。
第三步:如果有以【\】开头的字符串,(假如有多个),从最后一个开始保留。
拔高
- 【盘符:】的优先级在【\】之前,因此如果存在【盘符:】,则之前的带有【\】开头的字符串会被抛弃。
- 如果最后的以【盘符:】开头的字符串后面带有【\path1】,并且后面还有【\】开头的字符串(比如【\path2】),那么\path1以及后续直到\path2之前的字符串都会被抛弃。
二、代码实现
只需要第一步判断,就可以出最终结果的代码示例如下:
print(os.path.join("BaiduNetdiskDownload","test1","test2"))
# BaiduNetdiskDownload\test1\test2
下面是有多个以【盘符:】开头的字符串代码示例:
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:\test1\test2
下面是以【盘符:\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:\test2\test3
三、补充知识
举一个路径例子:【D:\ChromeCoreDownloads】,其中【\】代表路径分隔符。
而如果路径中包含双点号,例如【D:\ChromeCoreDownloads\test1\..\test2】,那么这个【..】就是对上一级目录的引用,也就是说【D:\ChromeCoreDownloads\test1\..\test2】的标准化路径(真实路径,也称绝对路径abspath)就是【D:\ChromeCoreDownloads\test2】。
print(os.path.realpath(r'D:\ChromeCoreDownloads\test1\..\test2'))
print(os.path.abspath(r'D:\ChromeCoreDownloads\test1\..\test2'))
print(os.path.normpath(r'D:\ChromeCoreDownloads\test1\..\test2'))
# 上面3行的输出结果都是D:\ChromeCoreDownloads\test2
四、参考来源
os.path --- 常用路径操作 — Python 3.10.2 文档
更多推荐
所有评论(0)