How to read such file and sumarize the data?

huisky huisky at gmail.com
Thu Nov 18 10:13:47 CET 2010


Thank you very much for your reply.
I think you just count the total number of NCPU used for each user.
And it does NOT show how much time used for each user.

Huisky

On Nov 18, 12:10 am, Steve Holden <st... at holdenweb.com> wrote:
> On 11/17/2010 4:45 PM, huisky wrote:> Say I have following log file, which records the code usage.
> > I want to read this file and do the summarize how much total CPU time
> > consumed for each user.
> > Is Python able to do so or say easy to achieve this?, anybody can give
> > me some hints, appricate very much!
>
> > Example log file.
> > **************************************************************************************
>
> I'm assuming the following (unquoted) data is in file "data.txt":
>
>
>
> > LSTC license server version 224 started at Sun Dec  6 18:56:48 2009
> > using configuration file /usr/local/lstc/server_data
> > xyz 15... at trofast3.marin.ntnu.no LS-DYNA_971 NCPU=1 started Sun Dec  6
> > 18:57:40
> > 15... at trofast3.marin.ntnu.no completed Sun Dec  6 19:42:55
> > xyz 15... at trofast3.marin.ntnu.no LS-DYNA_971 NCPU=2 started Sun Dec  6
> > 20:17:02
> > 15... at trofast3.marin.ntnu.no completed Sun Dec  6 20:26:03
> > xyz 18... at trofast2.marin.ntnu.no LS-DYNA_971 NCPU=1 started Sun Dec  6
> > 21:01:17
> > 18... at trofast2.marin.ntnu.no completed Sun Dec  6 21:01:28
> > tanhoi 5... at iimt-tanhoi-w.ivt.ntnu.no LS-DYNA_971 NCPU=1 started Mon
> > Dec  7 09:31:00
> > 5... at iimt-tanhoi-w.ivt.ntnu.no presumed dead Mon Dec  7 10:36:48
> > sabril 18... at trofast2.marin.ntnu.no LS-DYNA_971 NCPU=2 started Mon
> > Dec  7 13:14:47
> > 18... at trofast2.marin.ntnu.no completed Mon Dec  7 13:24:07
> > sabril 18... at trofast2.marin.ntnu.no LS-DYNA_971 NCPU=2 started Mon
> > Dec  7 14:21:34
> > sabril 18... at trofast2.marin.ntnu.no LS-DYNA_971 NCPU=2 started Mon
> > Dec  7 14:28:42
> > 18... at trofast2.marin.ntnu.no killed Mon Dec  7 14:31:48
> > 18... at trofast2.marin.ntnu.no killed Mon Dec  7 14:32:06
>
> The line wrapping being wrong shouldn't affect the logic.
>
> $ cat data.py
> lines = open("data.txt").readlines()
> 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
> --
> Steve Holden           +1 571 484 6266   +1 800 494 3119
> PyCon 2011 Atlanta March 9-17      http://us.pycon.org/
> See Python Video!      http://python.mirocommunity.org/
> Holden Web LLC                http://www.holdenweb.com/




More information about the Python-list mailing list