1. 程式人生 > >os.path.join 的用法

os.path.join 的用法

get 元素 import 返回值 連接 data padding 自動 http

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

總結:所以要麽不加 ‘./‘ 或者"/",要麽中間的路徑不能出現‘/‘開頭,合並路徑感覺是檢查了根目錄‘/‘的位置.

還是讓自動加上‘/‘就行

os.path.join 的用法