-
Notifications
You must be signed in to change notification settings - Fork 1
/
lattesalumn.py
116 lines (110 loc) · 4.61 KB
/
lattesalumn.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
#!/usr/bin/python3
# https://stackoverflow.com/questions/31844713/python-convert-xml-to-csv-file
import sys
from xml.etree import ElementTree
tree = ElementTree.parse('curriculo.xml')
def recode(var):
# Py2: return var.decode('iso-8859-1').encode('utf8')
return bytes(var, 'iso-8859-1').decode('utf8')
root = tree.getroot()
id_lattes = root.get('NUMERO-IDENTIFICADOR')
dt_upd = root.get('DATA-ATUALIZACAO')
hr_upd = root.get('HORA-ATUALIZACAO')
output = ''
line = [id_lattes]
gr_curso = ''
me_ = 0 # nro de mestrados
dr_ = 0 # nro de doutorados
pd_ = 0 # nro de pós-doutorados
for attrib in root:
#print(attrib)
if attrib.tag == 'DADOS-GERAIS':
nome = attrib.get('NOME-COMPLETO')
line += [nome, dt_upd, hr_upd]
for part in attrib:
'''
print(part.tag)
continue
RESUMO-CV
OUTRAS-INFORMACOES-RELEVANTES
ENDERECO
FORMACAO-ACADEMICA-TITULACAO
ATUACOES-PROFISSIONAIS
AREAS-DE-ATUACAO
IDIOMAS
PREMIOS-TITULOS
'''
for detail in part:
'''
print('detail.tag=='+detail.tag)
continue
'''
tag = detail.tag
if tag == 'ENDERECO-PROFISSIONAL':
empresa = detail.get('NOME-INSTITUICAO-EMPRESA')
orgao = detail.get('NOME-ORGAO')
unidade = detail.get('NOME-UNIDADE')
cidade = detail.get('CIDADE')
uf = detail.get('UF')
pais = detail.get('PAIS')
line += [empresa, orgao, unidade, cidade, uf, pais]
if tag == 'GRADUACAO' and gr_curso == '': # considera a 1a graduacao
gr_curso = detail.get('NOME-CURSO')
gr_ies = detail.get('NOME-INSTITUICAO')
gr_concl = detail.get('ANO-DE-CONCLUSAO')
line += [gr_curso, gr_ies,gr_concl]
if tag == 'MESTRADO':
me_ += 1
me_curso = detail.get('NOME-CURSO')
me_ies = detail.get('NOME-INSTITUICAO')
me_ini = detail.get('ANO-DE-INICIO')
me_concl = detail.get('ANO-DE-CONCLUSAO')
me_per = me_ini+'-'+me_concl
me_titulo = detail.get('TITULO-DA-DISSERTACAO-TESE')
me_orient = detail.get('NOME-COMPLETO-DO-ORIENTADOR')
me_id_or = detail.get('NUMERO-ID-ORIENTADOR')
if me_ > 1 and me_concl == '': # desprezar novo mestrado em andamento
continue
else:
line += [str(me_), me_curso, me_ies, me_per,
me_titulo, me_orient, me_id_or]
if tag == 'DOUTORADO':
dr_ += 1
dr_curso = detail.get('NOME-CURSO')
dr_ies = detail.get('NOME-INSTITUICAO')
dr_ini = detail.get('ANO-DE-INICIO')
dr_concl = detail.get('ANO-DE-CONCLUSAO')
dr_per = dr_ini+'-'+dr_concl
dr_titulo = detail.get('TITULO-DA-DISSERTACAO-TESE')
dr_orient = detail.get('NOME-COMPLETO-DO-ORIENTADOR')
dr_id_or = detail.get('NUMERO-ID-ORIENTADOR')
if dr_ > 1 and dr_concl == '': # desprezar novo doutorado em andamento
continue
else:
line += [str(dr_), dr_curso, dr_ies, dr_per,
dr_titulo, dr_orient, dr_id_or]
if tag == 'POS-DOUTORADO':
pd_ += 1
pd_ies = detail.get('NOME-INSTITUICAO')
pd_ini = detail.get('ANO-DE-INICIO')
pd_concl = detail.get('ANO-DE-CONCLUSAO')
pd_per = pd_ini+'-'+pd_concl
pd_titulo = detail.get('TITULO-DO-TRABALHO')
#pd_orient = detail.get('NOME-COMPLETO-DO-ORIENTADOR')
pd_id_or = detail.get('NUMERO-ID-ORIENTADOR')
line += [str(pd_), pd_ies, pd_per,
pd_titulo, pd_id_or]
i = 0
for field in line:
#print(repr(field))
line[i] = field.replace('\n',' ').replace('\r','')
i += 1
#line = '", "'.join(line) never use spaces after delimiting commas!
line = '","'.join(line)
line = '"' + line + '"\n'
output += line
fn = id_lattes+'_alu.csv'
outfile = open(fn, 'w')
outfile.write(output)
outfile.close()
print('File {} ({}) written'.format(fn,nome))