In <882091da-a499-477e-8f50-c5bdde7cd...@googlegroups.com> kxjakkk <kjaku...@gmail.com> writes:
> Let's say I have a sample file like this: > Name 1 2 3 4 5 6 7 8 > ------------------------------------------------------------------------ > name1 099-66-7871 A-F Y 100 67 81 59 98 > name2 999-88-7766 A-F N 99 100 96 91 90 > name3 000-00-0110 AUD 5 100 28 19 76 > name4 398-72-3333 P/F Y 76 84 49 69 78 > name5 909-37-3689 A-F Y 97 94 100 61 79 > For name1, I want to add together columns 4, 5, 6, and get an average from > that, then do the same for the last two columns. I want to do this for every > name. > All I've got is > sum([int(s.strip()) for s in open('file').readlines()]) This should get you started. However, this code does not work for all your imput lines, as 'name3' is missing the third field. You'll have to to modify the code to do something smarter than simple space-delimited data. But as I said, it's a start. # open the file with open('file') as fp: # process each line for line in fp.readlines(): # split the line into a list of fields, delimited by spaces fields = line.split() # grab the name name = fields[0] # convert text values to integers and sum them sum1 = int(fields[4]) + int(fields[5]) + int(fields[6]) sum2 = int(fields[7]) + int(fields[8]) # compute the averages average1 = sum1 / 3.0 average2 = sum2 / 2.0 # display output print '%s %f %f' % (name, average1, average2) -- John Gordon Imagine what it must be like for a real medical doctor to gor...@panix.com watch 'House', or a real serial killer to watch 'Dexter'. -- https://mail.python.org/mailman/listinfo/python-list