Problema ao ler arquivo .csv com acentos (losango com interrogação)

1,777 views
Skip to first unread message

erickson...@dce.ufpb.br

unread,
Dec 13, 2013, 10:43:41 AM12/13/13
to python...@googlegroups.com
Olá pessoal,

Estou tendo um problema ao manipular um arquivo .csv, já pesquisei mas não consegui resolver.
Então, o problema é o seguinte...

Tenho um arquivo .csv que contém aproximadamente 250k linhas.
Nas palavras que contém um acento, no lugar da letrá acentuada, está um losango com interrogação.

Como fazer para corrigir isso? 
Ou seja, quando pegar essa palavra acentuada, ela vim "normal".



Abraços,

Thiago Moreira de Souza

unread,
Dec 16, 2013, 10:57:11 AM12/16/13
to python...@googlegroups.com
Será que usar o unicode resolve para ti, por exemplo u"teste Você"


--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:
python-brasi...@googlegroups.com
 
---
Você está recebendo esta mensagem porque se inscreveu no grupo "Python Brasil" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para python-brasi...@googlegroups.com.
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.



--
Thiago Moreira de Souza Arrais

Em breve melhor aplicativo Jurídico
www.officeadv.com.br
---------------------------------------------------

Thiago Moreira de Souza

unread,
Dec 16, 2013, 10:57:35 AM12/16/13
to python...@googlegroups.com
basta colocar u junto a aspa

Joao S. O. Bueno

unread,
Dec 16, 2013, 3:25:27 PM12/16/13
to Python Brasil
Oi Ericson -
você tem que aprender sobre Unicode e codificações de texto primeiro.
Depoi sobre como usa-las no Python, mas depois de ler isso aqui:

http://bit.ly/1difmoq
(É o tradicional texto sobre Unicode do Joel on Software - é
que como o título do artigo está na URL, alguns podem considerar
ofensivo e não abri-lo)

Então, de pois de ler o texto acima como usa-las no Python é trivial.
(è só usar o método "decode" das byte-strings para ler texto, e
encode das strings unicode para gravar de volta)

E sobre a resposta do Thiago Moreira: desconsidere, o ' u" " ' só
vale quando você está colocando texto direto dentro do seu programa
fonte, não quando você está lendo arquivos externos.

Só que-- leia o texto daquele link. Até o final.
Não escreva mais nenhuma linha de código antes de faze-lo.

js
-><-

2013/12/13 <erickson...@dce.ufpb.br>:

Erickson Silva

unread,
Dec 17, 2013, 11:44:47 AM12/17/13
to python...@googlegroups.com
Tiago, obrigado pela dica, mas como o João disse, não dar por ser um arquivo externo.

Então João, obrigado pelo texto, li e entendi perfeitamente.
Mas mesmo assim não estou obtendo êxito. 
O problema é que não sei a codificação do documento.

Você poderia me ajudar? 
O arquivo está em anexo.

A primeira coluna seria a chave de um mapa e a segunda é o valor da mesma.

Já tentei de tudo e não conseguir resolver.
Salvei o arquivo tanto com codificação iso-8859-1 e utf-8, usei encode() e decode() e nada funciona.

Desde já obrigado.
Abraços,
dicPortGlosa.csv
WorkCSV.py

Ricardo Nascimento

unread,
May 14, 2014, 11:03:28 AM5/14/14
to python...@googlegroups.com
Olá,

entra nesse link:


Para eu resolveu.

Welton

unread,
May 18, 2014, 5:57:20 PM5/18/14
to python...@googlegroups.com
Erickson,

Quando tentava executar seu programa original postado aqui não aparecia nada.

Resolve dar um simplificada e não tive problema no Ubuntu de visualizar a acentuação do arquivo CSV.

# -*- coding: utf-8 -*-
import csv

dicInf = {}

# Abre o arquivo e preenche o dicionario    
fileInf = csv.reader(open("dicPortGlosa.csv"), delimiter=";")

for row in fileInf:
dicInf[row[0]] = row[1]
print (dicInf)
Reply all
Reply to author
Forward
0 new messages