Michiyo, When you ask a question to the list, you should be more careful to highlight your problem so that it doesn't seem like you're asking people to write a script for you. I don't think that's what you were doing, but just try to reduce your problem to a minimal example in the future.
I don't know what your script is doing; array[0, 2] is not legal as far as I know in python (it is legal on numarray.array types, but not on regular python lists AFAIK). I also don't know what that "in i" stuff you're doing means. When I run your code, I get a "TypeError: list indices must be integers" on the fields[0, 1] line. You should try to write your code in small bites to make it easier to debug. That said, I dig doing this sort of text processing, so I wrote my own script to do it. Perhaps it'll help clear up some ideas for you; if you have any questions, feel free to ask me about them: ==========begin file testprocess.py===================== one = open('one') two = open('two') out = open('out', 'w') THRESHOLD = .05 #build dict of {(x,y): z} from 'one' pts = {} for line in one: x, y, z = [float(i) for i in line.split()] #convert strings to floats pts[(x,y)] = z #insert point into dictionary #now check to find each pixel in 'two' in the pts dictionary bigpixels = 0 for line in two: x, y = [float(i) for i in line.split()] #convert strings to floats if (x,y) in pts and pts[(x,y)] > THRESHOLD: bigpixels += 1 print "%d pixels over %f" % (bigpixels, THRESHOLD) ============end file============================== Peace Bill Mill bill.mill at gmail.com On Mon, 31 Jan 2005 15:27:24 -0800, Michiyo LaBerge <[EMAIL PROTECTED]> wrote: > Hello all, > > I'm very new to Python and have been trying to write a script to > compare data from 2 files and getting a total. One of the two files > contains x, y positions of pixels and a color value(z) of each, so it > has three columns in the file. The other file has two columns; x1, y1. > I'd like to get only x, y positions which match to x1, y1 of the second > file and then look up the z value. If the z value is greater than a > certain number, it counts 1, otherwise it moves on the next x, y > position. Finally, I'm able to get total count of the pixels that are > over the threshold. The script I'm using is below step by step, > however, I haven't been able to figure out the error massage > "IndexError: list index out of range" on z value. Any comments would be > appreciated! > > Regards, > Michiyo > > file 1: file 2: > 299 189 8.543e-02 260 > 168 > 300 189 0.000e+00 270 > 180 > 301 189 0.000e+00 299 > 189 > 302 189 0.000e+00 300 > 170 > 0 188 5.095e-02 301 > 189 > 1 188 5.108e-02 . > . > . . . > . . > . . . > . . > > #!usr/local/bin/python > > import sys > > i=open("file 1") #value data > o=open("file 2") #look-up file > l=open("result", 'w')#result > > results={} > > line=i.readline() > line=o.readline() > > while line: > fields=line.split() > x1=fields[0, 1] in i #x,y position in file 1 > z=fields[2] in i #value data in file 1 > x2=fields[0, 1] in o #x,y position in file 2 > > if x1 == x2: > read(z) > > if z >= 5.000e-02: > z=1 > count(n=0) > print>>l, count(1) > > i.close() > o.close() > l.close() > > _______________________________________________ > Tutor maillist - Tutor@python.org > http://mail.python.org/mailman/listinfo/tutor > _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor