天天看點

python中os.path.join和join的差別

這兩個函數都是python的系統函數,都有“組合”、“連接配接”之意,但用法和應用場景千差萬别

函數說明:

1、join函數

用法:用于連接配接字元串數組。将字元串、元組、清單中的元素以指定的字元(即分隔符)連接配接生成一個新的字元串

文法:'sep'.join(seq)

參數說明:sep:分隔符,可以為空;seq:要連接配接的元素序列、字元串、元組、字典等

傳回值:傳回一個以分隔符sep連接配接各個元素後生成的新字元串

2、os.path.join函數

用法:将多個路徑組合後傳回

文法:os.path.join(path1[,path2[,path3[,...[,pathN]]]])

傳回值:将多個路徑組合後傳回

注意:第一個絕對路徑之前的參數将會被忽略

來些--執行個體--瞧瞧

對字元串進行操作

>>> seq1 = "my name is vampire techking"
>>> print(':'.join(seq1))
m:y: :n:a:m:e: :i:s: :v:a:m:p:i:r:e: :t:e:c:h:k:i:n:g      

對元組進行操作

>>> seq2 = ('my','name','is','vampire','techking')
>>> print(':'.join(seq2))
my:name:is:vampire:techking      

對序列(清單)進行操作

>>> seq3 = ['my','name','is','vampire','techking']
>>> print(':'.join(seq3))
my:name:is:vampire:techking      

對字典進行操作

>>> seq4 = {'my','name','is','vampire','techking'}
>>> print(':'.join(seq4))
is:my:techking:vampire:name      

合并路徑

>>> import os
>>> os.path.join('/my/','name/is/','vampire_techking')
'/my/name/is/vampire_techking'      
>>> os.path.join('/my/','name/is/','/vampire_techking')
'/vampire_techking'      
>>> os.path.join('/my/','/name/is/','vampire_techking')
'/name/is/vampire_techking'      

應用(九九乘法表):

>>> print('\n'.join([' '.join(['%s*%s=%-2s'%(y,x,x*y) for y in range(1,x+1)]) for x in range(1,10)]))      

對比上面,嘗試使用"xrange"