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

函数:string.join() 

Python中有join()和os.path.join()两个函数,具体作用如下:
str.join(): 连接字符串数组。将字符串、元组、列表中的元素以指定的字符(分隔符)连接生成一个新的字符串
os.path.join(): 将多个路径组合后返回,一般cv2.imread(path),这时候需要拼接路径就会用到这个函数。

一、函数说明
1、join()函数
语法: ‘sep’.join(seq)
参数说明
sep:分隔符。可以为空
seq:要连接的元素序列、字符串、元组、字典
上面的语法即:以sep作为分隔符,将seq所有的元素合并成一个新的字符串
返回值:返回一个以分隔符sep连接各个元素后生成的字符串
2、os.path.join()函数
语法: os.path.join(path1[,path2[,……]])
返回值:将多个路径组合后返回

os.path.join()函数用于路径拼接文件路径。os.path.join()函数中可以传入多个路径:

需要导入 import os

 

os.path.join()函数:

  • 第一个以”/”开头的参数开始拼接,之前的参数全部丢弃。

  • 以  上一种情况为先。在上一种情况确保下,若出现”./”开头的参数,会从”./”开头参数的  上一个参数开始拼接

  • 例如:

import os
print("1:",os.path.join('aaaa','/bbbb','ccccc.txt'))
print("2:",os.path.join('/aaaa','/bbbb','/ccccc.txt'))  #不良写法习惯
print("3:",os.path.join('aaaa','./bbb','ccccc.txt'))   
print("22:",os.path.join('/aaaa/','bbbb/','ccccc.txt'))  #通常可以这样写
输出为
#以字符串中含有 / 的第一个开始拼接
1: /bbbb/ccccc.txt
#当有多个是最后一个才开始,
2: /ccccc.txt

#以./ 的上一个开始拼接
3: aaaa/bbb/ccccc.txt

22: aaaa/bbb/ccccc.txt

 

#通常习惯的写法,合并目录
>>> import os
>>> os.path.join('/hello/','good/boy/','doiido')
输出:'/hello/good/boy/doiido'

总结一下:其实只是2种不同写法而已,度可以达到相同的拼接效果的。看自己的喜好来写吧

print("1:",os.path.join('aaaa','/bbbb','ccccc.txt'))os.path.join('/hello/','good/boy/','doiido')整个串里面只有一个以”/”开头的,参数从它开始往后拼接,”/”开头之前的参数全部丢弃print("2:",os.path.join('/aaaa','/bbbb','/ccccc.txt'))整个串有多个以”/”开头的参数,从最后”/”开头的的开始往后拼接,之前的参数全部丢弃。

print("3:",os.path.join('aaaa','./bbb','ccccc.txt'))

若出现”./”开头的参数,会从”./”开头的参数  的上一个参数开始拼接

print(‘4:’,os.path.join('aa/bb/cc/','../dd.txt'))

结果却是:aa/bb/dd.txt.  可以跳过CC路径

 

 

 

 

  • 20
    点赞
  • 89
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值