Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import re
- re_findall = re.findall
- pattern = 'Serie\s\w$'
- class TeamParser(object):
- def __init__(self, file_path):
- self._file_path = file_path
- self._result = None
- @property
- def result(self):
- if not self._result:
- self._result = self._parse_file()
- return self._result
- def _parse_file(self):
- file = open(self._file_path, 'r')
- current_series = None
- self._result = []
- while True:
- line = file.readline().rstrip()
- # if file ended, dispose and finish
- if len(line) == 0:
- self._result.append(self._parse_team(current_series))
- break
- # If new series, dispose and reset array
- if re_findall('Serie\s\w$', line):
- if current_series:
- self._result.append(self._parse_team(current_series))
- current_series = []
- # append new line in array
- current_series.append(line)
- file.close()
- return self._result
- def _parse_team(self, series):
- result = {'title' : series[0], 'teams' : []}
- index = 1
- number_games = (len(series) -1) / 4
- for team_index in xrange(number_games):
- team = series[index: index+4]
- result['teams'].append({'time' : team[0], 'team_a' : team[1], 'team_b' : team[2], 'final_score' : team[3]})
- index += 4
- return result
- x = TeamParser('/Users/danielpiros/Desktop/test.txt')
- print x.result
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement