记录一下os.path.join()的问题
os.path.join()是用来拼接路径的,之前只用过
os.path.join(“E:/xxx/xx”,“xxx”)
这样赋值的句式,但出现其他变化就不太明白了,所以查阅了网上相关内容,结合自己新发现的一个情况,记录在此:
import os
print("1:",os.path.join('aaaa','sd/bbb','ccccc.txt'))
print("2:",os.path.join('bbb','aaaa','./sd/bbb','ccccc.txt'))
print("3:",os.path.join('bbb','/aaaa','./sd/bbb','ccccc.txt'))
print("4:",os.path.join('aaaa','E:/sd/bbb','ccccc.txt'))
print("5:",os.path.join('aaaa','./sd/bbb','ccccc.txt'))
print("6:",os.path.join('aaaa','/aaoo','/aaoo/xxx','/sd/bbb','ccccc.txt'))
输出结果:
1: aaaa\sd/bbb\ccccc.txt
2: bbb\aaaa\./sd/bbb\ccccc.txt
3: /aaaa\./sd/bbb\ccccc.txt
4: E:/sd/bbb\ccccc.txt
5: aaaa\./sd/bbb\ccccc.txt
6: /sd/bbb\ccccc.txt
1------正常拼接
2------./
前面还有两个值,os.path.join()也把这两个值加入了路径
3------./
前面的值里面有/
的时候,拼接完/
带有这个符号的字符串后,再在它前面的字符串选择遗弃,并不进行拼接。
4------出现E:/
在os.path.join()中待拼接字符串的任意起始位置,以E:/
开头的字符串为首,开始拼接。
6------前方有多个/
起始的待拼接字符串,则以最后一个带有/
开头的字符串为首开始拼接