返回一行中的单词列表但忽略某些空格

Cha*_*ith 2 python string

说我有线:

235Carling             Robert         140 Simpson Ave     Toronto        Ont M6T9H1416/247-2538416/889-6178
Run Code Online (Sandbox Code Playgroud)

你看到每个角色的集合?我希望那些代表数据文件中的列.我遇到的问题是"街道地址"栏目.

for i in master_file:
    #returns a list of the words, splitting at whitespace
    columns = i.split()
Run Code Online (Sandbox Code Playgroud)

问题是虽然这会分成140 Simpson Ave三个"单词".是否有一种方法可以用来说只有单词如果被一定数量的空格或某些东西包围?

Sla*_*off 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']
Run Code Online (Sandbox Code Playgroud)

其中\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']
Run Code Online (Sandbox Code Playgroud)