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(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

总结:所以要么不加 './' 或者"/",要么中间的路径不能出现'/'开头,合并路径感觉是检查了根目录'/'的位置.

还是让自动加上'/'就行

posted @ 2018-02-06 15:24  我是小随  阅读(600)  评论(0编辑  收藏  举报