时间:2014.06.11
地点:基地
------------------------------------------------------------------------
一、问题
多次看到python中的join了,看着不爽了,今天研究个明白,顺便也将split也关注了下。也包括os.path.join和os.path.split
------------------------------------------------------------------------
二、详解
split和join二者都是用于对字符串进行处理的函数,split用于拆分字符串,join用于连接字符串。
2.1 str.join(sep)
以str作为分割符,将序列sep(序列中的元素都是字符串)中的所有元素合并成一个新的字符串。比如:
sep=['yun','meng','ze']
#现在我们希望得到yun-meng-ze这样一个将sep中各字符串元素用短线进行连接的字符串,可以这样:
'-'.join(sep)再来看个os.path.join(path1(,path2(,...)))
path.join('C:\\','Python','python.exe') #即这里的join会自动在个元算间添加 \\ ,使之构成一个文件路径
输出是:
'C:\\Python\\python.exe'
将多个路径进行组合后返回,且在第一个完整绝对路径之前的的参数将会被忽略,比如:
path.join('Hello Python','C:\\','Python','python.exe')其输出是:
'C:\\Python\\python.exe'
2.2 string.split(str=‘ ‘,num=string.count(str)):
以str为分隔符,将string切分,若果num指定,则仅将string分隔成num个部分,否则将根据第一个参数在字符串中的个数进行划分,余下部分字符串不再参与划分。
调用方法
s.split([sep,(,maxsplit)]) #返回一组使用分隔符sep分隔字符串形成的列表,若指定最大分割数,则在最大分割时结束,若分隔符未指定,默认为按空格分割,例:
s1='a b c' print s1.split() print s1.split(' ') s2='hello wordl' print s2.split('o') print s2.split('o',1)需要注意的是,当我们指定分割符时一定不能为空,否则报错,倒是该分隔符可以不一定要出现在字符串中,不在即不分割,另外分隔符将不会再出现在分割后的子字符串中。
另外,我们还有os.path.split()
它把给定的路径字符串按照路径和文件名,比如d:\\python\\python.exe。分割后结果为: [‘d:\\puthon‘,‘python.exe‘]
from os import path print path.split('C:\\Python\\Python.exe') print path.split('C:\\Python\\')