Python 路径拼接函数os.path.join()

os.path.join()用于连接多个路径组件,依据不同情况处理路径。当组件不以'/'开头时,会自动添加;若存在绝对路径,其前的组件会被忽略;'./'会被保留并与其前组件一起拼接;最后组件为空则路径以''结尾。优先级:'/'> './'

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

os.path.join()
功能:连接两个或更多的路径名组件

demo1 : 各组件名首字母不包含’/’

import os
path1 = 'aaa'
path2 = 'bbb'
path3 = 'ccc'
path10 = path1 + path2 + path3
path20 = os.path.join(path1,path2,path3)
print('path10 = ',path10)
print('path20 = ',path20)

path10 = aaabbbccc
path20 = aaa\bbb\ccc

demo2:有一个组件是绝对路径

import os
path1 = '/aaa'
path2 = 'bbb'
path3 = 'ccc'
path10 = path1 + path2 + path3
path20 = os.path.join(path1,path2,path3)
print('path10 = ',path10)
print('path20 = ',path20)

path10 = /aaabbbccc
path20 = /aaa\bbb\ccc

import os
path1 = '/aaa'
path2 = '/bbb'
path3 = 'ccc'
path10 = path1 + path2 + path3
path20 = os.path.join(path1,path2,path3)
print('path10 = ',path10)
print('path20 = ',path20)

path10 = /aaa/bbbccc
path20 = /bbb\ccc

path1 = '/aaa'
path2 = 'bbb'
path3 = '/ccc'
path10 = path1 + path2 + path3
path20 = os.path.join(path1,path2,path3)
print('path10 = ',path10)
print('path20 = ',path20)

path10 = /aaabbb/ccc
path20 = /ccc

demo3:有一个组建为‘ ./ ’

path1 = '/aaa'
path2 = './bbb'
path3 = 'ccc'
path10 = path1 + path2 + path3
path20 = os.path.join(path1,path2,path3)
print('path10 = ',path10)
print('path20 = ',path20)

path10 = /aaa./bbbccc
path20 = /aaa./bbb\ccc

path1 = 'aaa'
path2 = './bbb'
path3 = '/ccc'
path10 = path1 + path2 + path3
path20 = os.path.join(path1,path2,path3)
print('path10 = ',path10)
print('path20 = ',path20)

path10 = aaa./bbb/ccc
path20 = /ccc

demo4: 最后一个组件为空

path1 = 'aaa'
path2 = './bbb'
path3 = ' '
path10 = path1 + path2 + path3
path20 = os.path.join(path1,path2,path3)
print('path10 = ',path10)
print('path20 = ',path20)

path10 = aaa./bbb
path20 = aaa./bbb\

总结:

  1. 该方法会从最后一个字符串开始向前寻找,直到找到以’ / ’ 开头的字符串,并将他们拼接起来
  2. 如果各组件名首字母不包含’/’,则函数会自动加上
  3. 如果有一个组件是绝对路径,则在它之前的所有组件均会被舍弃
  4. 如果最后一个组件为空,则生成的路径以一个’\’分隔符结尾
  5. 如果遇到‘ ./ ’ ,会把’ ./ ‘前面的字符一起拼接起来。
  6. ’ / ’ 的优先级高于’ ./ ’ 。

参考博客:https://blog.youkuaiyun.com/qq_33468857/article/details/89027013
https://blog.youkuaiyun.com/weixin_40624269/article/details/82740282

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值