File Data Extraction Approach
Peter Hansen
peter at engcorp.com
Thu Nov 22 21:33:55 EST 2001
"Jim St.Cyr" wrote:
>
> I have a multiline file of the format:
>
> : Some Name = data : Another Name = data : etc = data:
>
> Each line consists of 20 tagnames and associated data. Some of the tagnames
> have spaces in them though most don't. There is a space on each side of the
> equal sign and on each side of the colon which acts as a field seperator. I
> only need the data associated with 7 out of the 20 tagnames.
>
> I was thinking about removing the whitespace from the line and then seeking
> the tagnames that I am interested in. This strikes me as sort of brute
> force and I would like some help in formulating an approach that is a bit
> more elegant.
Just write code that reads *all* the tags and data from a line, then
ignore the ones you don't want. Do the work once the data is in a
more tractable form (i.e. in memory) rather than trying to dissect
the file while it's still a file.
Slightly ugly code which makes a dictionary from each line and prints
it to stdout:
>>> f = open('file')
>>> import string
>>> while line in f.readlines():
... d = {}
... for field in line.split(':'):
... if field.strip():
... tag, data = map(string.strip, field.split('='))
... d[tag] = data
... print 'Result %s' % d
--
----------------------
Peter Hansen, P.Eng.
peter at engcorp.com
More information about the Python-list
mailing list