Ciao Balan<div><br></div><div>Ho scritto un piccolo componente che fa il parsing di un file di testo (strutturato come vuoi tu) e ne ricava una lista di dizionari.</div><div><br></div><div>Nel caso di:</div><div><div>Serie A</div>
<div>18:00</div><div>Bologna</div><div>Inter</div><div>1:3</div><div>20:45</div><div>Milan</div><div>Cesena</div><div>1:0</div><div>20:45</div><div>Napoli</div><div>Fiorentina</div><div>0:0</div><div>Serie B</div><div>18:00</div>
<div>Bologna</div><div>Inter</div><div>1:3</div><div>20:45</div><div>Milan</div><div>Cesena</div><div>1:0</div><div>20:45</div><div>Napoli</div><div>Fiorentina</div><div>0:0</div></div><div><br></div><div>ritornerebbe:</div>
<div>







<p class="p1">[{'teams': [{'final_score': '1:3', 'team_a': 'Bologna', 'team_b': 'Inter', 'time': '18:00'}, {'final_score': '1:0', 'team_a': 'Milan', 'team_b': 'Cesena', 'time': '20:45'}, {'final_score': '0:0', 'team_a': 'Napoli', 'team_b': 'Fiorentina', 'time': '20:45'}], 'title': 'Serie A'}, {'teams': [{'final_score': '1:3', 'team_a': 'Bologna', 'team_b': 'Inter', 'time': '18:00'}, {'final_score': '1:0', 'team_a': 'Milan', 'team_b': 'Cesena', 'time': '20:45'}, {'final_score': '0:0', 'team_a': 'Napoli', 'team_b': 'Fiorentina', 'time': '20:45'}], 'title': 'Serie B'}]</p>
<p class="p1">Script:</p><p class="p1"></p><p class="p1">import re</p><p class="p1">class TeamParser(object):</p><p class="p1">  def __init__(self, file_path):</p><p class="p1">    self._file_path = file_path</p><p class="p1">
    self._result = None</p><p class="p1">  </p><p class="p1">  @property</p><p class="p1">  def result(self):</p><p class="p1">    if not self._result:</p><p class="p1">      self._result = self._parse_file()</p><p class="p1">
    return self._result</p><p class="p1">  </p><p class="p1">  def _parse_file(self):</p><p class="p1">    file = open(self._file_path, 'r')</p><p class="p1">    current_series = None</p><p class="p1">    self._result = []</p>
<p class="p1">    </p><p class="p1">    while True:</p><p class="p1">      line = file.readline().rstrip()</p><p class="p1">      # if file ended, dispose and finish</p><p class="p1">      </p><p class="p1">      if len(line) == 0:</p>
<p class="p1">        self._result.append(self._parse_team(current_series))</p><p class="p1">        break</p><p class="p1">      </p><p class="p1">      # If new series, dispose and reset array</p><p class="p1">      if re.findall('Serie\s\w$', line):</p>
<p class="p1">        if current_series:</p><p class="p1">          self._result.append(self._parse_team(current_series))</p><p class="p1">        current_series = []</p><p class="p1">      </p><p class="p1">      # append new line in array</p>
<p class="p1">      current_series.append(line)</p><p class="p1">    </p><p class="p1">    file.close()</p><p class="p1">    return self._result</p><p class="p1">  </p><p class="p1">  def _parse_team(self, series):</p><p class="p1">
      result = {'title' : series[0], 'teams' : []}</p><p class="p1">      index = 1</p><p class="p1">      number_games = (len(series) -1) / 4</p><p class="p1">      </p><p class="p1">      for team_index in xrange(number_games):</p>
<p class="p1">        team = series[index: index+4]</p><p class="p1">        result['teams'].append({'time' : team[0], 'team_a' : team[1], 'team_b' : team[2], 'final_score' : team[3]})</p>
<p class="p1">        index += 4</p><p class="p1">      return result</p><p class="p1"><br></p><p class="p1">x = TeamParser('path del tuo file')</p><p class="p1">print x.result <-- reuslts</p><p></p></div><div>
pastebin: <a href="http://pastebin.com/JN0pSQ0j">http://pastebin.com/JN0pSQ0j</a></div><div><br></div><div>Non penso funzioni con il tuo secondo file, in quel caso fai scraping, esistono tante belle librerie tra cui BeautifulSoup che č fantastica e interamente scritta in Python</div>
<div><br></div><div>Un saluto, per qualsiasi cosa chiedi pure!</div><div><br></div><div>Daniel Pyrathon</div><div><br><div class="gmail_quote">Il giorno 28 settembre 2011 10:59, Balan Victor <span dir="ltr"><<a href="mailto:balan.victor0@gmail.com">balan.victor0@gmail.com</a>></span> ha scritto:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">in cosa consistono queste cose migliori?grazie<br><br><div class="gmail_quote">Il giorno 28 settembre 2011 08:44, Enrico Franchi <span dir="ltr"><<a href="mailto:enrico.franchi@gmail.com" target="_blank">enrico.franchi@gmail.com</a>></span> ha scritto:<div>
<div></div><div class="h5"><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>Balan Victor wrote:<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
penso di essere riuscito a fare cioč che volevo...che ne pensate?<br>
</blockquote>
<br></div>
Diciamo che ti ho visto scrivere cose migliori... ;)<br><font color="#888888">
<br>
<br>
<br>
<br>
-- <br>
.<br>
..: -enrico-</font><div><div></div><div><br>
<br>
______________________________<u></u>_________________<br>
Python mailing list<br>
<a href="mailto:Python@lists.python.it" target="_blank">Python@lists.python.it</a><br>
<a href="http://lists.python.it/mailman/listinfo/python" target="_blank">http://lists.python.it/<u></u>mailman/listinfo/python</a><br>
</div></div></blockquote></div></div></div><br>
<br>_______________________________________________<br>
Python mailing list<br>
<a href="mailto:Python@lists.python.it">Python@lists.python.it</a><br>
<a href="http://lists.python.it/mailman/listinfo/python" target="_blank">http://lists.python.it/mailman/listinfo/python</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br>*************<div><br><div>PirosB3</div><div><br></div><div><a href="http://pirosb3.com" target="_blank">http://pirosb3.com</a></div></div><br>
</div>