We Recommend

Learning Python Learning Python
The authors of Learning Python show you enough essentials of the Python scripting language to enable you to begin solving problems right away, then reveal more powerful aspects of the language one at a time. This approach is sure to appeal to programmers and system administrators who have urgent problems and a preference for learning by semi-guided experimentation.


Posted By

mbanfi on 11/15/08


Tagged

time date textmate python logfile


Versions (?)


Calculate elapsed time for timestamps in (log)file


Published in: Python 


  1. #!/usr/bin/env python
  2. """Calculate elapsed time for timestamps in logfile.
  3.  
  4. Syntax: time_elapsed.py <filename> <first-line-number> <last-line-number>"""
  5.  
  6. import sys, linecache
  7. from time import mktime, strftime, strptime, gmtime
  8.  
  9. filename, first_line, last_line = sys.argv[1], int(sys.argv[2]), int(sys.argv[3])
  10.  
  11. print "Lines for the given range (%d-%d) in file (%s):" % (first_line, last_line, filename)
  12. print "-" * 70
  13. for line in range(first_line, last_line+1):
  14. print linecache.getline(filename, line).strip()
  15.  
  16.  
  17. # The first 16 characters in each line of the file are the timestamp.
  18. # Modify this for your needs.
  19. begin_time = linecache.getline(filename, first_line).strip()[0:15]
  20. end_time = linecache.getline(filename, last_line).strip()[0:15]
  21.  
  22. # Use this code if the logfile has a delimiter which seperates fields.
  23. # In this example ";":
  24. #begin_time = linecache.getline(filename, first_line).split(";")[0]
  25. #end_time = linecache.getline(filename, last_line).split(";")[0]
  26.  
  27.  
  28. # Format strings: http://docs.python.org/library/time.html#time.strftime
  29. elapsed_sec = mktime(strptime(end_time, "%b %d %H:%M:%S")) - mktime(strptime(begin_time, "%b %d %H:%M:%S"))
  30. elapsed_readable = strftime("%H:%M:%S", gmtime(elapsed_sec))
  31.  
  32. print "-" * 70
  33. print "Elapsed time (seconds) :", elapsed_sec
  34. print "Elapsed time (HH:MM:SS):", elapsed_readable

Report this snippet 

You need to login to post a comment.