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(path1[,path2[,......]])
返回值:將多個路徑組合后返回
注:第一個絕對路徑之前的參數將被忽略
二、實例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
#對序列進行操作(分別使用' '與':'作為分隔符)
>>> seq1 = ['hello','good','boy','doiido']
>>> print ' '.join(seq1)
hello good boy doiido
>>> print ':'.join(seq1)
hello:good:boy:doiido
#對字符串進行操作
>>> seq2 = "hello good boy doiido"
>>> print ':'.join(seq2)
h:e:l:l:o: :g:o:o:d: :b:o:y: :d:o:i:i:d:o
#對元組進行操作
>>> seq3 = ('hello','good','boy','doiido')
>>> print ':'.join(seq3)
hello:good:boy:doiido
#對字典進行操作
>>> seq4 = {'hello':1,'good':2,'boy':3,'doiido':4}
>>> print ':'.join(seq4)
boy:good:doiido:hello
#合並目錄
>>> import os
>>> os.path.join('/hello/','good/boy/','doiido')
'/hello/good/boy/doiido'
|
kaggle-word2vec-ipynb
>>> import os
>>> datafile = os.path.join('/kaggle-word2vec-ipynb','/data/', 'labeledTrainData.tsv')
>>> print datafile
/data/labeledTrainData.tsv
>>> datafile = os.path.join('kaggle-word2vec-ipynb','/data/', 'labeledTrainData.tsv')
>>> print datafile
/data/labeledTrainData.tsv
#想要的路徑
>>> datafile = os.path.join('./kaggle-word2vec-ipynb/','data/', 'labeledTrainData.tsv')
>>> print datafile
./kaggle-word2vec-ipynb/data/labeledTrainData.tsv
#"/"出現在第一個,所以可以追蹤合並到第一個
>>> datafile = os.path.join('/kaggle-word2vec-ipynb/','data/', 'labeledTrainData.tsv')
>>> print datafile
/kaggle-word2vec-ipynb/data/labeledTrainData.tsv
#"/"出現在第二個,所以從第二個開始,以下類推
>>> datafile = os.path.join('/kaggle-word2vec-ipynb','/data', 'labeledTrainData.tsv')
>>> print datafile
/data/labeledTrainData.tsv
>>> datafile = os.path.join('/kaggle-word2vec-ipynb','/data', '/labeledTrainData.tsv')
>>> print datafile
/labeledTrainData.tsv
>>> datafile = os.path.join('/kaggle-word2vec-ipynb','./data', '/labeledTrainData.tsv')
>>> print datafile
/labeledTrainData.tsv
>>> datafile = os.path.join('/kaggle-word2vec-ipynb','data/', '/labeledTrainData.tsv')
>>> print datafile
/labeledTrainData.tsv
>>> datafile = os.path.join('kaggle-word2vec-ipynb','data', 'labeledTrainData.tsv')
>>> print datafile
kaggle-word2vec-ipynb/data/labeledTrainData.tsv
#想要的路徑 自動添加'/'
>>> datafile = os.path.join('.','kaggle-word2vec-ipynb','data', 'labeledTrainData.tsv')
>>> print datafile
./kaggle-word2vec-ipynb/data/labeledTrainData.tsv
總結:所以要么不加 './' 或者"/",要么中間的路徑不能出現'/'開頭,合並路徑感覺是檢查了根目錄'/'的位置.
還是讓自動加上'/'就行