#!/usr/bin/python
# -*- coding: utf8 -*-

import re
import csv

instr=open('Архангельск_ИУ.txt').read().decode('utf8')

instr = re.sub('[\t ]+', ' ', instr) #заменяем лишние табы и пробелы на пробел
#instr = re.sub(u'[-–]', '-', instr, re.U)


open('/tmp/test.reg', 'wt').write(instr.encode('utf8'))
csvfile = open('архангельск.csv', 'wt')
fieldnames = ['uik', 'addr_v', 'place_v', 'phone_v', 'territory']
csv_ext = csv.DictWriter(csvfile, fieldnames, extrasaction='ignore')
csv_ext.writerow( dict( [ (k,k) for k in fieldnames ]))
def_city = u'г. Архангельск, '

reg = re.compile(u"""ИЗБИРАТЕЛЬНЫЙ УЧАСТОК № (?P<uik>\d+)\s+\(Место нахождения(?P<trash>.*?голосования.{,3})\s+(?P<place_v>.*?),(?P<addr_v>.*?)\) *
(?P<territory>.*?)(?=(?:ИЗБИРАТЕЛЬНЫЙ УЧАСТОК)|\Z)""", re.S | re.I | re.U | re.M)

for p in reg.finditer(instr):
    print p.groupdict()['uik']
    
    out_dict = dict( [ (k,v.strip()) for (k,v) in p.groupdict().items()] )

    out_dict['place_v'] = out_dict['place_v'].replace('\n', ' ') #убиваем переводы строк
    out_dict['addr_v'] = def_city + out_dict['addr_v'].replace('\n', ' ') #подкручиваем адрес

    csv_ext.writerow( dict( [ (k,v.encode('utf8')) for (k,v) in out_dict.items()] ) )
#    print '!>', '=>'.join([s.strip() for s in p]).encode('utf8')

csvfile.close()
