1. Split 是对字符串进行拆分处理。
string.split(str="", num=string.count(str)): 以str为分隔,符切片string,如果num有指定的值,那么仅仅分隔num个子字符串。
split(…)
S.split([sep [,maxsplit]]) -> 由字符串分割成的列表
返回一组使用分隔符(sep)分割字符串形成的列表。如果指定最大分割数,则在最大分割时结束。如果分隔符未指定或者为none,则分隔符默认为空格。
举例:
<pre name="code" class="python">s='a b c'
print s.split(' ')st='hello world'print st.split('o')print st.split('o',1)--------output---------['a', 'b', 'c']['hell', ' w', 'rld']['hell', ' world']
需要注意的是,分隔符不可以是空的,否则会出现以下错误
Traceback (most recent call last):
File "xxxx.py", line 2, in <module>
print s.split('')
ValueError: empty separator
但是可以使用不在被需要分隔的string中的分隔符:
s = 'a b c'
>>> s.split('x')
['a b c']
>>> s.split('xsdfadsf')
['a b c']
2. Join是对所有元素(字符串)通过分隔符连接成一个新的字符串
string.join(sep) ,以string作为分隔符,将sep中所有元素(字符串)合并成一个新的字符串
p.s. 在python中,字符串string,元祖tuple,列表list等都是序列类型,有着相同的访问方式,都可以用下标来访问其中的元素。所以,对于这类参数可以直接使用join。
例子:
print '.'.join('abcd')
print '.'.join({'a':1,'b':2,'c':3,'d':4})
print '%'.join(['a','b','c'])
print '%'.join(str(['a','b','c']))
#print
a.b.c.d
a.c.b.d
a%b%c
[%'%a%'%,% %'%b%'%,% %'%c%'%]
可见,对于list来说,转换为str是多余的,再使用join就是对于一个完全的string字符串进行操作。
# 对于导入os模块的os.path.split()和os.path.join()在处理机制上有不同,功能实现上一样。
os.path.split是按照路径将文件名和路径分隔开,比如c:\\python27\\test.py,被分割为['c:\\python27','test.py']
import os
print os.path.split('c:\\python27\\test.py')
print os.path.split('c:\\python27\\')
-----------------output---------------------
('c:\\python27', 'test.py')
('c:\\python27', '')
os.path.join(path1[, path2[, ...]]) 将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
os.path.join('c:\\', 'python27', 'test.py')
os.path.join('windows\temp', 'c:\\', 'python27', 'test.py')
os.path.join('/home/aa', '/home/aa/bb', 'home/aa/bb/c')
#result
'c:\\python27\\test,py'
'c:\\python27\\test,py'
'/home/aa/bb/c'