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

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

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

  • 相关阅读:
    MSDN for 2010的那些麻烦事
    CPtrList操作--插入,删除特定元素,删除全部
    如何绕过ORA00701错误和降低bootstrap对象的高水位
    ORA00600:[1112]内部错误&ROW CACHE ENQUEUE LOCK一例
    CRS5008: Invalid attribute value
    ORA00600[kjpsod1]&ORA44203错误一例
    runInstaller ignoreInternalDriverError
    RMAN CURSOR_SHARING=EXACT脚本
    SQL调优:带函数的谓词导致CBO Cardinality计算误差
    11g Real Application Testing:Database Replay使用方法
  • 原文地址:https://www.cnblogs.com/AlvinSui/p/8422568.html
Copyright © 2011-2022 走看看