tree = et.ElementTree(root)
with open('../txt/EnsaiosFotograficos.txt', encoding="utf8") as f:
    txt = f.read()
    clean_text = unicodedata.normalize("NFKD", txt)
    lines = clean_text.splitlines()


for line in lines:

    if not line or bool(re.match(r'\s\s*', line)):
        print("linha vazia")
    else:
        spl = line.split(',')
        strnome = spl[0]
        nomeinstituicao = util.get_instituicao(strnome)
        strnome = util.removeparenteses(strnome.replace(nomeinstituicao, ""))
        strensaio = line.replace(spl[0]+',', "")
        resen = strensaio.split("#")
        partic = et.SubElement(root, "participante")
        nomeparticipante = et.SubElement(partic, "nome")
        nomeparticipante.text = util.getnome(strnome)
        if nomeinstituicao != "":
            instituicao = et.SubElement(partic, 'instituicao')
            instituicao.text = nomeinstituicao
        for ensaio in resen:
            en = et.SubElement(partic, "ensaio")
            ennome = et.SubElement(en, "nome")

            res = re.search(r'\s\d\d\d\d\s', ensaio)
            if res is not None:
                ano = res.group(0)
        if bool(resano):
            anotxt = resano.group(0)
            continue
        vencedor = et.SubElement(root, "vencedor")
        nome = et.SubElement(vencedor, 'nome')
        txtnome = line.split(',')[0]
        nome.text = util.getnome(txtnome)
        res = re.search(r"(\d\d\d\d),?\s?(\d\d\d\d)?", line)
        if bool(res):
            ano = et.SubElement(vencedor, "ano")
            ano.text = res.group(1)
            if res.group(2) is not None:
                ano = et.SubElement(vencedor, "ano")
                ano.text = res.group(1)
        else:
            ano = et.SubElement(vencedor, "ano")
            ano.text = util.removeparenteses(anotxt)

f.close()
# prettify xml

formatedXML = minidom.parseString(et.tostring(root)).toprettyxml(indent=" ").strip()
# print(formatedXML)

# tree.write('diretorias.xml',  method='xml')
# write the formatedXML to file.
with io.open("../xml/ConcursosFordAnpocs.xml", "w+", encoding="utf-8") as f:
    f.write(formatedXML)


Ejemplo n.º 3
0
root = et.Element('grupos')
tree = et.ElementTree(root)
with open('../txt/GruposDeTrabalho.txt', encoding="utf8") as f:
    txt = f.read()
    clean_text = unicodedata.normalize("NFKD", txt)
    lines = clean_text.splitlines()

for line in lines:

    if not line or bool(re.match(r'\s\s*', line)):
        print("linha vazia")
    else:
        res = re.findall(r'\d\d\d\d', line)
        ehgrupo = bool(res)
        if (ehgrupo):
            grupo = util.removeparenteses(line)
            gp = et.SubElement(root, "grupo")
            nome = et.SubElement(gp, "nome_grupo")
            nome.text = grupo.strip()
            for linha in res:
                ano = et.SubElement(gp, 'ano')
                ano.text = linha
        else:
            nomeparticipante = util.getnome(line)
            instituicao = util.get_instituicao(line)
            participante = et.SubElement(gp, "participante")
            np = et.SubElement(participante, "nome_participante")
            np.text = nomeparticipante.strip()
            if (instituicao != ""):
                inst = et.SubElement(participante, "instituicao")
                inst.text = instituicao.strip()
for matchNum, match in enumerate(matches):
    matchNum = matchNum + 1

    #print("Match {matchNum} was found at {start}-{end}: {match}".format(matchNum=matchNum, start=match.start(), end=match.end(), match=match.group()))

    for groupNum in range(0, len(match.groups())):
        groupNum = groupNum + 1

        if groupNum == 1:
            vencedor = et.SubElement(root, "vencedor")
            nomeVencedor = et.SubElement(vencedor, "nomevencedor")
            nomeVencedor.text = match.group(groupNum).strip()
        if groupNum == 3:
            instituicao = et.SubElement(vencedor, "instituicao")
            instituicao.text = util.removeparenteses(match.group(groupNum))
        if groupNum == 4:
            ano = et.SubElement(vencedor, "ano")
            ano.text = match.group(groupNum)
        if groupNum == 5:
            painel = et.SubElement(vencedor, "painel")
            painel.text = match.group(groupNum).strip()

f.close()
# prettify xml

formatedXML = minidom.parseString(
    et.tostring(root)).toprettyxml(indent=" ").strip()
# print(formatedXML)

# tree.write('diretorias.xml',  method='xml')