本篇内容介绍了“python中的路径拼接问题怎么解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
python路径拼接
使用:
os.path.join()函数:连接两个或更多的路径名组件
如果有一个组件是一个绝对路径,则在它之前的所有组件均会被舍弃
如果最后一个组件为空,则生成的路径以一个 分隔符结尾
def test2(): s1, s2, s3 = 'home', 'courses', 'test' res = os.path.join(s1, s2, s3) print(res) # homecourses est s2 = '/courses' res = os.path.join(s1, s2, s3) print(res) # /courses est s1, s2, s3 = 'home', 'courses', 'test' res = os.path.join(s1, s2, s3) print(res) # homecourses est s1, s2, s3 = 'home', 'courses', '' res = os.path.join(s1, s2, s3) print(res) #homecourses
homecourses est
/courses est
homecourses est
homecourses
python os.path.join路径拼接错误
ss = 'E:Cloud20200813105812L es1425' a = '8_live_1962854245_export_filesmedia' c = os.path.join(ss,a) print(c)
得到的是如下结果:
os.path.join()函数
连接两个或更多的路径名组件:
参数可能存在多个
从右边开始数,遇到第一个以”/”开头的参数,开始拼接,这个参数左边的全部丢弃
print("0:",os.path.join('aaaa','bbbb','ccccc.txt')) print("0:",os.path.join('aaaa','bbb','ccccc.txt')) print("0:",os.path.join('aaaa','bbbb','ccccc.txt')) print("0:",os.path.join('aaaa','bbb','ccccc.txt')) print("0:",os.path.join('aaaa','/bbbb','ccccc.txt')) print("0:",os.path.join('aaaa','/bbbb','/ccccc.txt')) 结果: 0: aaaabbbccccc.txt 0: bbbccccc.txt 0: ccccc.txt 0: ccccc.txt 0: ccccc.txt 0: /ccccc.txt
从右边开始数,遇到第一个以”/”开头的参数,开始拼接,这个参数左边的全部丢弃
print("1:",os.path.join('aaaa','xxxxxx','./bbb','ccccc.txt')) print("1:",os.path.join('./aaaa','xxxxxx','./bbb','./ccccc.txt')) 结果: 1: aaaaxxxxxx./bbbccccc.txt 1: ./aaaaxxxxxx./bbb./ccccc.txt
带盘符,/,各种复杂情况(正式使用前先测试,也可以去看看源码具体是怎么解析的)
# 后面的斜杠反斜杠 print("1:",os.path.join('c:','bbb')) print("1:",os.path.join('c:','bbb/','ccccc.txt')) # 未加盘符 print("2:",os.path.join('c','/bbb','ccccc.txt')) # 会以/bbb开头 print("2:",os.path.join('c:','/bbb','ccccc.txt')) # 虽然有反斜杆 但是依旧以C:开头 print("2:",os.path.join('c:/','/bbb','ccccc.txt')) # 多个/只会有一个 # 盘符后面未加斜杠 print("3:",os.path.join('c:','bbb','ccccc.txt')) print("3:",os.path.join('c:/','bbb','ccccc.txt')) 结果: 1: c:bbb 1: c:bbb/ccccc.txt 2: /bbbccccc.txt 2: c:/bbbccccc.txt 2: c:/bbbccccc.txt 3: c:bbbccccc.txt 3: c:/bbbccccc.txt