On 11/17/2010 6:10 PM, Steve Holden wrote:

$ cat data.py
lines = open("data.txt").readlines()

Since you iterate through the file just once, there is no reason I can think of to make a complete in-memory copy. That would be a problem with a multi-gigabyte log file ;=). In 3.x at least, open files are line iterators and one would just need

lines = open("data.txt")

from collections import defaultdict
c = defaultdict(int)
for line in lines:
     ls = line.split()
     if len(ls)>  3 and ls[3].startswith("NCPU="):
         amt = int(ls[3][5:])
         c[ls[0]] += amt
for key, value in c.items():
     print key, ":", value


$ python data.py
xyz : 4
tanhoi : 1
sabril : 6

regards
  Steve


--
Terry Jan Reedy

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to