s = 4 e = 7 with f = file('path_to_file) as fp: for line in f: if line.startswith(name): avg = sum(map(int, filter(ambda x : len(x) > 0, s.split(' '))[s : e])) / (e - s)
On 20.02.2014 17:22, kxjakkk wrote:
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()])
-- Johannes Schneider Webentwicklung johannes.schnei...@galileo-press.de Tel.: +49.228.42150.xxx Galileo Press GmbH Rheinwerkallee 4 - 53227 Bonn - Germany Tel.: +49.228.42.150.0 (Zentrale) .77 (Fax) http://www.galileo-press.de/ Geschäftsführer: Tomas Wehren, Ralf Kaulisch, Rainer Kaltenecker HRB 8363 Amtsgericht Bonn -- https://mail.python.org/mailman/listinfo/python-list