Advertisement
Guest User

Untitled

a guest
Sep 28th, 2011
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.43 KB | None | 0 0
  1. import re
  2.  
  3. re_findall = re.findall
  4. pattern = 'Serie\s\w$'
  5.  
  6. class TeamParser(object):
  7.   def __init__(self, file_path):
  8.     self._file_path = file_path
  9.     self._result = None
  10.  
  11.   @property
  12.   def result(self):
  13.     if not self._result:
  14.       self._result = self._parse_file()
  15.     return self._result
  16.  
  17.   def _parse_file(self):
  18.     file = open(self._file_path, 'r')
  19.     current_series = None
  20.     self._result = []
  21.    
  22.     while True:
  23.       line = file.readline().rstrip()
  24.       # if file ended, dispose and finish
  25.      
  26.       if len(line) == 0:
  27.         self._result.append(self._parse_team(current_series))
  28.         break
  29.      
  30.       # If new series, dispose and reset array
  31.       if re_findall('Serie\s\w$', line):
  32.         if current_series:
  33.           self._result.append(self._parse_team(current_series))
  34.         current_series = []
  35.      
  36.       # append new line in array
  37.       current_series.append(line)
  38.    
  39.     file.close()
  40.     return self._result
  41.  
  42.   def _parse_team(self, series):
  43.       result = {'title' : series[0], 'teams' : []}
  44.       index = 1
  45.       number_games = (len(series) -1) / 4
  46.      
  47.       for team_index in xrange(number_games):
  48.         team = series[index: index+4]
  49.         result['teams'].append({'time' : team[0], 'team_a' : team[1], 'team_b' : team[2], 'final_score' : team[3]})
  50.         index += 4
  51.       return result
  52.  
  53. x = TeamParser('/Users/danielpiros/Desktop/test.txt')
  54. print x.result
  55.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement