说我有这条线:
235Carling Robert 140 Simpson Ave Toronto Ont M6T9H1416/247-2538416/889-6178
你看到每个角色的集合?我希望那些代表数据文件中的列。我遇到的问题是街道地址"柱。
for i in master_file:
#returns a list of the words, splitting at whitespace
columns = i.split()
问题是虽然这会将140 Simpson Ave
分成三个"单词"。是否有一种方法可以用来说只有在单词被一定数量的空格或其他东西包围时才分开?
答案 0 :(得分:6)
如果你有标签,这是非常简单的,但是如果你只是寻找有多个空格的东西,你可以使用python的re.split
方法来做到这一点:
import re
re.split('\s{2,}', '235Carling Robert 140 Simpson Ave Toronto Ont M6T9H1416/247-2538416/889-6178')
['235Carling', 'Robert', '140 Simpson Ave', 'Toronto', 'Ont M6T9H1416/247-2538416/889-6178']
\s{2,}
只匹配任意一系列的2个或更多空白字符。
如果您的行之间的字符实际上有标签,则可以完全避免使用正则表达式:
test = '235Carling Robert 140 Simpson Ave Toronto Ont M6T9H1416/247-2538416/889-6178'
test.split('\t')
['235Carling', 'Robert', '140 Simpson Ave', 'Toronto', 'Ont M6T9H1416/247-2538416/889-6178']