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
总结:所以要么不加 './' 或者"/",要么中间的路径不能出现'/'开头,合并路径感觉是检查了根目录'/'的位置.
还是让自动加上'/'就行
最新文章
- Vue.js——60分钟webpack项目模板快速入门
- linux动态时钟探索
- 在MVC3中修改KindEditor实现图片删除
- iOS第三方类库JSPatch(热更新)
- OneProxy主从延迟检测
- 自绘按钮,添加Color属性(转载)
- WWH学习模式
- 5W1H分析法
- MIT 操作系统实验 MIT JOS lab2
- linux使用crontab实现PHP执行定时任务
- flask轻量级框架入门
- js中的Call()和apply()
- C#获取路径
- Linux系统管理命令
- 第四节:Windows系统安装时BIOS设置及注意
- Android camera 竖直拍照 获取竖直方向照片
- Rhythmk 一步一步学 JAVA (22) JAVA 网络编程
- PHP 支持简写方式
- QT的动图加载
- OUTlook无法预览xls文件
热门文章
- SQL的语言分类
- JS数组 组团(如何创建数组)var mychar = new Array( )
- 关于Button控件的CommandName属性用法的一个实例
- 转载:Linux命令经典面试题:统计文件中出现次数最多的前10个单词
- some方法过滤
- iOS开发NSFetchedResultsController的使用CoreData和TableView数据同步更新
- 2019 西电ACM校赛网络赛 题解
- MyEclispe点击add deploment 无反应的处理,无法添加项目到Tomcat
- 06_jQuery对象初识(四)文档处理
- WPF界面设计中常用的一些代码片段及属性