Python中有join和os.path.join()兩個函數,具體作用如下:
join:連接配接字元串數組。将字元串、元組、清單中的元素以指定的字元(分隔符)連接配接生成一個新的字元串
os.path.join(): 把目錄和檔案名合成一個路徑
一、函數說明
1.join()函數
文法:‘sep’.join(seq)
參數說明:
sep:分隔符。可以為空
seq:要連接配接的元素序列、字元串、元組、字典等
上面的文法即:以sep作為分隔符,将seq所有的元素合并成一個新的字元串
傳回值:傳回一個以分隔符sep連接配接各個元素後生成的字元串
2、os.path.join()函數
os.path.join()函數用于路徑拼接檔案路徑
os.path.join()函數中可以傳入多個路徑:
- 會從第一個以”/”開頭的參數開始拼接,之前的參數全部丢棄。
- 以上一種情況為先。在上一種情況確定情況下,若出現”./”開頭的參數,會從”./”開頭的參數的上一個參數開始拼接
文法: os.path.join(path1[,path2[,......]])
傳回值:把目錄和檔案名合成一個路徑
執行個體:下面的執行個體在 jupyter notebook 中驗證
import os
# 以空格做為分割
seq = ["Hello","good","morning"]
" ".join(seq)
結果:
'Hello good morning'
# 以 , 号做為分割
",".join(seq)
結果:
'Hello,good,morning'
# 對字元串進行操作
seq1 = "Hello good morning"
# 以空格進行分割
" ".join(seq1)
結果:
'H e l l o g o o d m o r n i n g'
# 對元祖 tuple 進行操作
seq2 = ("Hello","good","morning")
# 以空格進行分割
" ".join(seq2)
結果:
'Hello good morning'
# 對字典
seq3 = {"Hello":1,"good":2,"morning":3}
#用 空格 進行分割
" ".join(seq3) # 結果有可能是無序的,dictionary内部存儲就是無序的
結果:
'Hello good morning'
os.path.join()函數合并目錄的操作
# 會從第一個以”/”開頭的參數開始拼接,之前的參數全部丢棄。
os.path.join("aa","/bb","ccc.txt")
結果:
'/bb/ccc.txt'
os.path.join("/aa","bb","ccc.txt")
結果:
'/aa/bb/ccc.txt'
os.path.join("/aa","/bb","/ccc.txt")
結果:
'/ccc.txt'
# 以上一種情況為先。在上一種情況確定情況下,若出現”./”開頭的參數,會從”./”開頭的參數的上一個參數開始拼接。
os.path.join("aa","./bb","ccc.txt")
結果:
'aa/./bb/ccc.txt'
data_dir = 'hymenoptera_data'
{x:os.path.join(data_dir,x)
for x in ['Train',"Val"]}
結果:
{'Train': 'hymenoptera_data/Train', 'Val': 'hymenoptera_data/Val'}
Reference:
python os.path子產品
Python中join函數和os.path.join用法
python路徑拼接os.path.join()函數完全教程