-
Notifications
You must be signed in to change notification settings - Fork 1
/
clearcsv.py
53 lines (40 loc) · 1.77 KB
/
clearcsv.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
'''
O intuito do código abaixo é remover caracteres especiais de listas de votantes para eleições
baseadas no sistema Helios Voting (https://vote.heliosvoting.org/)
Como funciona:
1 copie o arquivo que deseja 'limpar' para o mesmo diretório deste código
1.1 o arquivo deve ter a extensão csv no formato recomendado pelo helios voting (id_unico,email,nome)
este código vai remover acentos apenas dos nomes
2 na linha seguinte ao primeiro comentário (#) coloque o nome do arquivo que você deseja alterar
3 [opcional] modifique o prefixo após o segundo comentário #
A rotina de remoção dos caracteres é baseada neste GIST: https://gist.github.com/boniattirodrigo/67429ada53b7337d2e79
no presente código foi apenas implementada um solução pontual para listas do helios voting
'''
import removerAcentosECaracteresEspeciais as rmspec
import csv
#Troque o nome do arquivo para o nodo daquele que você deseja ´Limpar´
nm_f = 'teste.csv'
f = open(nm_f, 'r', encoding="utf8")
leitor = csv.reader(f)
contador = 0
dados = []
for reg in leitor:
voter_id, email, nm = reg[0], reg[1], rmspec.rmspechar(reg[2])
if (nm != reg[2]):
contador += 1
dados.append([voter_id,email,nm])
f.close()
#Troque o nome do prefixo do arquivo modificado se desejar
prefixo = "modificado"
'''
Caso queira sobrescrever o arquivo original comente ou exclua a linha abaixo
tenha sempre uma cópia de backup do arquivo original
{procedimento não recomendado}
'''
nm_f = prefixo + '-' + nm_f
f = open(nm_f, 'w', newline='')
escritor = csv.writer(f,delimiter=',')
for linha in dados:
escritor.writerow(linha)
f.close()
print(f"Foram removidos caracteres especiais de {contador} registros")