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 This builds a dict whose keys are field numbers and values are themselves dicts mapping (row, col) pairs to a value. > where, > > a b > a b a b > 10 0000000000|0000000000 0000000000|0000000000 0000000000|0000000000 > 9 0000000000|0000000000 0000000000|0000000000 0000000000|0000000000 > 8 0000011111|1111100000 0000000000|0000000000 0000000000|0000000000 > 7 0000011111|1111100000 0000001111|1111000000 0000000000|0000000000 > 6 0000011111|1111100000 0000001111|1111000000 0000000111|1110000000 > 5 0000011111|1111100000 0000001111|1111000000 0000000111|1110000000 > 4 0000011111|1111100000 0000001111|1111000000 0000000000|0000000000 > 3 0000011111|1111100000 0000000000|0000000000 0000000000|0000000000 > 2 0000000000|0000000000 0000000000|0000000000 0000000000|0000000000 > 1 0000000000|0000000000 0000000000|0000000000 0000000000|0000000000 I guess this is the intended output? Do you want to actually create a printed table like this, or some kind of data structure that represents the table, or what? Kent _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor