Using,
fields = {}
for line in open('data.txt') :
if line :
if line.split()[0] == 'field' :
field = int(line.split()[-1])
else :
fields[field] = tuple(line.split())
I get,
fields[field] = tuple(line.split())
NameError: name 'field' is not defined
On Nov 8, 2007 7:34 AM, Ricardo Aráoz <[EMAIL PROTECTED]> wrote:
>
> Kent Johnson wrote:
> > Bryan Fodness wrote:
> >> I would like to have my data in a format so that I can create a contour
> >> plot.
> >>
> >> My data is in a file with a format, where there may be multiple fields
> >>
> >> field = 1
> >>
> >> 1a 0
> >
> > If your data is really this regular, it is pretty easy to parse. A
> > useful technique is to access a file's next method directly. Something
> > like this (not tested!):
> >
> > f = open('data.txt')
> > fields = {} # build a dict of fields
> > try:
> > while True:
> > # Get the field line
> > line = f.next()
> > field = int(line.split()[-1]) # last part of the line as an int
> >
> > f.next() # skip blank line
> >
> > data = {} # for each field, map (row, col) to value
> > for i in range(20): # read 20 data lines
> > line = f.next()
> > ix, value = f.split()
> > row = int(ix[:-1])
> > col = ix[-1]
> > data[row, col] = int(value)
> >
> > fields[field] = data
> >
> > f.next()
> > except StopIteration:
> > pass
> >
>
> Or maybe just (untested) :
>
> fields = {} # build a dict of fields
> for line in open('data.txt') :
> if line : # skip blank lines
> if line.split()[0] == 'field' :
> field = int(line.split()[-1])
> else :
> fields[field] = tuple(line.split())
>
> _______________________________________________
> Tutor maillist - [email protected]
> http://mail.python.org/mailman/listinfo/tutor
>
_______________________________________________
Tutor maillist - [email protected]
http://mail.python.org/mailman/listinfo/tutor