天天看點

Python中join函數和os.path.join用法

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()函數完全教程