Advertisement
Guest User

Untitled

a guest
Nov 22nd, 2014
189
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.33 KB | None | 0 0
  1. import sys
  2. import re
  3. import datetime
  4.  
  5. if len(sys.argv) != 3:
  6.     exit('Greska u broju argumenata')
  7. try:
  8.     last = open("last.txt", "r")
  9. except:
  10.     exit('Greska u fajlu last.txt')
  11.  
  12. arg_uzorak = re.compile(r'([0-9]{2}).*?([0-9]{2})')
  13. for i in arg_uzorak.finditer(sys.argv[1]):
  14.     dan = i.group(1)
  15.     mesec = i.group(2)
  16. for i in arg_uzorak.finditer(sys.argv[2]):
  17.     sat = i.group(1)
  18.     minut = i.group(2)
  19.  
  20. year = datetime.date.today().year
  21. datum = datetime.datetime(year, int(mesec), int(dan), int(sat), int(minut))
  22. #uzorak = re.compile(r'.*?(\w{3})\s*([0-9]+)\s*([0-9]+):([0-9]+) - ([0-9]+):([0-9]+)\s*\(([0-9]+):([0-9]+)\)', re.S)
  23.  
  24. regex = r'(?P<korisnicko_ime>.+)\s+' #korisnicko ime
  25. regex += r'(?P<nebitno1>.*?)' #sve sto ima do datuma, ? da ne pokupi sve do kraja reda
  26. regex += r'(?P<mesec>Jan|Feb|Mar|Apr|May|Jun|Jul|Avg|Sep|Oct|Nov|Dec)\s+' #mesec
  27. regex += r'(?P<dan>\d+)\s+' #dan
  28. regex += r'(?P<satP>\d\d):(?P<minutP>\d\d)' #pocetak sesije
  29. regex += r'(?P<nebitno2>.*?)' #sve sto ima do trajanja sesije
  30. regex += r'[(](?P<dDay>\d+)?[+]?(?P<satK>\d\d):(?P<minK>\d\d)[)]' #trajanje sesije
  31. pattern = re.compile(regex)
  32.  
  33.  
  34. meseci = {'Jan' : 1, 'Feb': 2, 'Mar' : 3, 'Apr' : 4, 'May' : 5, 'Jun': 6, 'Jul' : 7, 'Avg': 8, 'Sep' : 9, 'Oct' : 10, 'Nov' : 11, 'Dec': 12}
  35. redovi = {}
  36. blejanje_na_serveru=0
  37. duration_days =0
  38. duration_hours =0
  39. duration_minutes= 0
  40. lista=[]
  41. for i in file.readlines(last):
  42.     duration_days=0
  43.     duration_hours=0
  44.     duration_minutes=0
  45.     pretraga = pattern.match(i)
  46.     if pretraga is not None:
  47.         donja_granica = datetime.datetime(year,meseci[pretraga.group("mesec")]
  48.             ,int(pretraga.group("dan")),int(pretraga.group("satP")),int(pretraga.group("minutP")))
  49.     if pretraga.group("dDay") is not None:
  50.         duration_days=int(pretraga.group("dDay"))
  51.         duration_hours=int(pretraga.group("satK"))
  52.         duration_minutes=int(pretraga.group("minK"))
  53.     else:
  54.         duration_hours=int(pretraga.group("satK"))
  55.         duration_minutes=int(pretraga.group("minK"))
  56.     gornja_granica=donja_granica+datetime.timedelta(days=duration_days,hours=duration_hours,minutes=duration_minutes)
  57.     #blejanje_na_serveru = duration_days*24*60+duration_hours*60+duration_minutes
  58.     if donja_granica<=datum and datum<=gornja_granica:
  59.         lista.append(i)
  60.  
  61. for x in lista:
  62.      bla = re.sub("\n+","",x)
  63.      print bla
  64.  
  65. last.close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement