字符方法——字符串方法示例:解析文本

未匹配的标注

字符串方法的另一个常见角色是作为文本解析的简单形式——也就是:分析结构和提取子串。要在固定的偏移量提取子串,可以使用切片技术:

>>> line = 'aaa bbb ccc'
>>> col1 = line[0:3]
>>> col3 = line[8:]
>>> col1
'aaa'
>>> col3
'ccc'

这里,数据列出现在固定偏移量处,因此可以从原始字符串中切出。只要数据的组成部分有固定位置,这种技术就被当做解析。另一方面,如果某种分隔符将数据分开,则可以使用 split 操作将其组成部分提取出来。即使数据出现在字符串中的任何位置,这种方法也可以使用:

>>> line = 'aaa bbb ccc'
>>> cols = line.split()
>>> cols
['aaa', 'bbb', 'ccc']

字符串split方法围绕分隔符字符串将字符串切隔为子串的列表。在前面的例子中,没有传入分隔符,所以它默认为空白——这个字符串可以被一组字符串(一个或多个空格,制表符和换行符)分隔,然后获得结果子串的列表。在其它应用中,分隔数据的分隔符可能更实用。这个例子在逗号(被某些数据库工具返回的在数据中常见的分隔符)处 split(因此解析)字符串:

>>> line = 'bob,hacker,40'
>>> line.split(',')
['bob', 'hacker', '40']

分隔符还可以比单个字符更长:

>>> line = "i'mSPAMaSPAMlumberjack"
>>> line.split("SPAM")
["i'm", 'a', 'lumberjack']

虽然slice操作和split操作的解析潜力有限,但它们运行得非常快而且可以处理基本的文本提取杂务。以逗号分隔的文本数据是CSV文件格式的一部分;要了解这个领域的更高级工具,请参考Python标准库中的csv模块。

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
讨论数量: 0
发起讨论 只看当前版本


暂无话题~