среда, 27 мая 2015 г.

Набросал парсер

Сие поделие создает файл в текущей директории и пишет в него данные блоков ландшафта в текстовом виде. Оно относится к классу ландшафта, поэтому нет проблем со сбором информации. Текст:

def parser(self, filename):
        f = open(sys.path[0] + '/' + filename, 'w')
        # просматриваем все блоки ландшафта
        for brick in self.brickList:
            # создаем строку - список связанных блоков
            relL = '|'
            # проходим список связанных блоков
            for rel in brick.relatedList:
                # добавляем в строку индекс связанного блока
                relL = relL + str(rel) + '|'
            # собираем данные в кучу, для записи
            line = (str(brick.index) + '-' + str(brick.position[0]) + '|' +
            str(brick.position[1]) + '|' + str(brick.position[2]) + '-' +
            brick.nameMesh + '-' + relL + '-\n')
            # записываем
            f.write(line)
        f.close()

Кусочек результата:

0-0.0|0.0|0.0-a,a,a,a-|1|16|17|-
1-2.0|0.0|0.0-a,a,a,a-|0|2|17|16|18|-
2-4.0|0.0|0.0-a,a,a,a-|1|3|18|17|19|-
3-6.0|0.0|0.0-a,a,a,a-|2|4|19|18|20|-
4-8.0|0.0|0.0-a,a,a,a-|3|5|20|19|21|-
5-10.0|0.0|0.0-a,a,a,a-|4|6|21|20|22|-
6-12.0|0.0|0.0-a,a,a,a-|5|7|22|21|23|-
7-14.0|0.0|0.0-a,a,a,a-|6|8|23|22|24|-
8-16.0|0.0|0.0-a,a,a,a-|7|9|24|23|25|-
9-18.0|0.0|0.0-a,a,a,a-|8|10|25|24|26|-