newby question: Splitting a string - separator
James Stroud
jstroud at mbi.ucla.edu
Fri Dec 9 21:02:02 EST 2005
Thomas Liesner wrote:
> Hi all,
>
> i am having a textfile which contains a single string with names.
> I want to split this string into its records an put them into a list.
> In "normal" cases i would do something like:
>
>
>>#!/usr/bin/python
>>inp = open("file")
>>data = inp.read()
>>names = data.split()
>>inp.close()
>
>
> The problem is, that the names contain spaces an the records are also
> just seprarated by spaces. The only thing i can rely on, ist that the
> recordseparator is always more than a single whitespace.
>
> I thought of something like defining the separator for split() by using
> a regex for "more than one whitespace". RegEx for whitespace is \s, but
> what would i use for "more than one"? \s+?
>
> TIA,
> Tom
The one I like best goes like this:
py> data = "Guido van Rossum Tim Peters Thomas Liesner"
py> names = [n for n in data.split() if n]
py> names
['Guido', 'van', 'Rossum', 'Tim', 'Peters', 'Thomas', 'Liesner']
I think it is theoretically faster (and more pythonic) than using regexes.
James
More information about the Python-list
mailing list