Dave Cinege wrote:
> Very often....make that very very very very very very very very very often,
> I find myself processing text in python that  when .split()'ing a line, I'd 
> like to exclude the split for a 'quoted' item...quoted because it contains 
> whitespace or the sep char.
> 
> For example:
> 
> s = '      Chan: 11  SNR: 22  ESSID: "Spaced Out Wifi"  Enc: On'

Even if you don't like Neal's more efficient regex-based version, the 
necessary utility function to do a two-pass split operation really isn't that 
tricky:

def split_quoted(text, sep=None, quote='"'):
     sections = text.split(quote)
     result = []
     for idx, unquoted_text in enumerate(sections[::2]):
         result.extend(unquoted_text.split(sep))
         quoted = 2*idx+1
         quoted_text = sections[quoted:quoted+1]
         result.extend(quoted_text)
     return result

 >>> split_quoted('      Chan: 11  SNR: 22  ESSID: "Spaced Out Wifi"  Enc: On')
['Chan:', '11', 'SNR:', '22', 'ESSID:', 'Spaced Out Wifi', 'Enc:', 'On']

Given that this function (or a regex based equivalent) is easy enough to add 
if you do need it, I don't find the idea of increasing the complexity of the 
basic split API particularly compelling.

Cheers,
Nick.

-- 
Nick Coghlan   |   [EMAIL PROTECTED]   |   Brisbane, Australia
---------------------------------------------------------------
             http://www.boredomandlaziness.org
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to