newby question: Splitting a string - separator

Michael Spencer mahs at telcopartners.com
Thu Dec 8 20:21:26 CET 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
\s+ gives one or more, you need \s{2,} for two or more:

  >>> import re
  >>> re.split("\s{2,}","Guido van Rossum  Tim Peters     Thomas Liesner")
  ['Guido van Rossum', 'Tim Peters', 'Thomas Liesner']
  >>>

Michael




More information about the Python-list mailing list