arquivos csv

47 views
Skip to first unread message

Celso Souza

unread,
May 22, 2022, 4:25:25 PM5/22/22
to Python Brasil
Boa tarde!!!

Tenho um arquivo em csv, mas estou com dificuldade de ler o mesmo. Após ler o arquivo ele da uma mensagem de erro. Já fiz várias pesquisa na net, tentei usar o import csv. Mas não obtive sucesso. Estou precisando muito de ajuda, pois sempre faço conexão com arquivo xlsx, mas o csv é a primeira vez. Vi que o csv também tem a codificação ANSI, UTF8 entre outros, o arquivo que estou lendo a codificação é ANSI.

Obs: Se eu abrir o arquivo.csv no bloco de notas no final de cada linha existe 2 ponto e virgula,";;" e se eu abrir o arquivo no Excel e salvar o mesmo ele funciona.
Se alguém puder me mostrar como resolver isso vou ficar muito grato.
Grato.

Código

lercsv.JPG

Ao executar o código acima ele mostra a mensagem de erro.

mensagem erro.JPG

ACMM

unread,
May 22, 2022, 8:29:44 PM5/22/22
to python...@googlegroups.com
Experimenta usar assim:

with open("arquivo.csv", "r") as arq:
    linhas = [x.strip( ).split( ) for x in arq]
    for x in linhas:
        print(x)

Esse é um exemplo bem básico de uma das formas que o Python tem pra fazer leitura de arquivos csv.
Espero que ajude.

Sent from my AC&MM Moto G100

--
--
------------------------------------
Grupo Python-Brasil
https://wiki.python.org.br/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ê recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/python-brasil/c6c778ae-b815-4a9f-a86b-d6ce0a49bc2en%40googlegroups.com.

Mauricio Fagundes

unread,
May 22, 2022, 9:20:48 PM5/22/22
to Python Brasil
Pela mensagem de erro me parece que as duas primeiras linhas estão sem esse ";" extra, daí o Pandas "achar" que o arquivo tem apenas 19 colunas. Como você colocou o header=0 ele não irá interpretar que a primeira linha é o header, tratando tudo como dados.

Uma opção seria usar o usecols, onde você passa uma lista dos índices de colunas que quer usar. Confesso que nunca usei isso mas, pelo que vi na documentação, ele deve aceitar algo como range(0, 20). Assim ele ignoraria essa coluna extra causada pelos ";" extras nas linhas.

Ah, e também sugiro usar o parâmetro thousands=".", uma vez que se trata de um arquivo que foi, provavelmente, criado nos padrões brasileiros. Quanto ao encoding, eu costumo usar nesses casos o "iso-8859-1".

[]s

--
--
------------------------------------
Grupo Python-Brasil
https://wiki.python.org.br/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ê recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/python-brasil/c6c778ae-b815-4a9f-a86b-d6ce0a49bc2en%40googlegroups.com.


--
Mauricio Fagundes
Reply all
Reply to author
Forward
0 new messages