zoukankan      html  css  js  c++  java
  • 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

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

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

  • 相关阅读:
    Gartner APM 魔力象限技术解读——全量存储? No! 按需存储?YES!
    微信不再提供小程序打开App?借助H5为App引流的方式你必须知道!
    来电科技:基于 Flink + Hologres 的实时数仓演进之路
    进击的云原生,为开发者提供更多可能性
    分久必合的Lindorm传奇
    雷锋网独家解读:阿里云原生应用的布局与策略
    「技术人生」第4篇:技术、业务、组织的一般规律及应对策略
    云上安全保护伞--SLS威胁情报集成实战
    Linux date命令实现日期查询与UTC时戳转换
    VScode调试运行cmake加入环境变量
  • 原文地址:https://www.cnblogs.com/AlvinSui/p/8422568.html
Copyright © 2011-2022 走看看