Python中有split()和os.path.split()两个函数:
split():拆分字符串。通过指定分隔符对字符串进行切片,并返回分割后的字符串列表。
os.path.split():将文件名和路径分割开。
1、split()函数
语法:str.split(str=" ",num=string.count(str))[n]
参数说明:
str: 表示为分隔符,默认为空格,但是不能为空串。若字符串中没有分隔符,则把整个字符串作为列表的一个元素。
num:表示分割次数。如果存在参数num,则仅分隔成 num+1 个子字符串。
[n]: 表示选取第n个分片(从0计数)
默认情况下,使用空格作为分隔符,则分隔后,空串会自动忽略,如:
>>> s="love python"
>>>s.split()
["love", "python"]
但若显式指定空格为分隔符,则不会自动忽略空串,如:
>>> s.split(" ")
["love", "", "", "", "python"]
默认的分隔符除了空格,还有 " ",分隔后,空串会自动忽略,如下:
>>> s="love python "
>>>s.split()
["love", "python"]>>> s="www.pku.edu.cn"
>>> s.split() #默认空格作为分隔符,但字符串中没有分隔符,因此,把整个字符串作为列表的一个元素
["www.pku.edu.cn"]
>>> s.split(".") #以"."作为分隔符,没有指定分隔次数,则有多少 "." 就分隔多少次
["www", "pku", "edu", "cn"]
>>> s.split(".",0) #分隔0次
["www.pku.edu.cn"]
>>> s.split(".",1) #分隔1次
["www", "pku.edu.cn"]
>>> s.split(".",2)#分隔2次
["www", "pku", "edu.cn"]
>>> s.split(".",2)[1]#分隔2次,取索引为1的项
"pku"
>>> s.split(".",-1) #尽可能多的分隔,与不加num参数相同
["www", "pku", "edu", "cn"]
>>> s1,s2=s.split(".",1)#分隔1次,并把分隔后的2个字符串存放在s1和s2中
>>> s1
"www"
>>> s2
"pku.edu.cn"
>>> s="""love
... hello
... python"""
>>> s
"love hello python"
>>> s.split(" ")#以" "作为分隔符,分隔次数尽可能的多
["love", "hello", "python"]
>>> print s
love
hello
python
练习一下下面的例子:
>>> s="hello python<[www.python.com]>hello python"
>>> s.split("[")[1].split("]")[0]"www.python.com"
>>> s.split("[")[1].split("]")[0].split(".")
["www", "python", "com"]
2、os.path.split()函数
语法:os.path.split("PATH")
参数说明:
PATH指一个文件的全路径作为参数:
如果给出的是一个目录和文件名,则输出路径和文件名
如果给出的是一个目录名,则输出路径和为空文件名
实际上,该函数的分割并不智能,它仅仅是以 "PATH" 中最后一个 "/" 作为分隔符,分隔后,将索引为0的视为目录(路径),将索引为1的视为文件名,如:
>>> importos>>> os.path.split("C:/soft/python/test.py")
("C:/soft/python", "test.py")>>> os.path.split("C:/soft/python/test")
("C:/soft/python", "test")>>> os.path.split("C:/soft/python/")
("C:/soft/python", "")