[python-brasil] Lendo dados de um arquivo .txt

514 views
Skip to first unread message

waleria_antunes

unread,
Oct 4, 2010, 9:23:39 AM10/4/10
to python...@yahoogrupos.com.br
 

Olá pessoal,

Preciso ler um arquivo .txt, onde possuo 4 colunas mais preciso ler a partir da 2 coluna, porém esta me retornando o erro seguinte:

Traceback (most recent call last):
File "C:\dados.py", line 25, in <module>
x = numpy.loadtxt('C:\dados.txt')[:0]
File "C:\EPD\lib\site-packages\numpy\lib\io.py", line 630, in loadtxt
X.append(tuple([conv(val) for (conv, val) in zip(converters, vals)]))
ValueError: invalid literal for float(): 1993ah

Vejam meu código: http://pastebin.com/6TmsiPkm

O meu arquivo .txt ...possui essa estrutura: http://pastebin.com/wjiyRV80

Alguém pode me ajudar?

__._,_.___
Atividade nos últimos dias:
,-----------------------------------------------------------.
| Antes de enviar um e-mail para o grupo leia:              |
| http://www.pythonbrasil.com.br/moin.cgi/AntesDePerguntar  |
| E se você é usuário do BOL lembre-se de cadastrar o       |
| e-mail do grupo na lista branca do seu sistema anti-spam. |
`-----------------------------------------------------------´
.

__,_._,___

Dilan Nery

unread,
Oct 4, 2010, 3:46:52 PM10/4/10
to python...@yahoogrupos.com.br
 

Pelo que entendi da mensagem de erro, o numpy tenta converter '1993ah' para
um float, mas não consegue pois tem os caracteres 'ah' no final. Por isso o
erro: "ValueError: invalid literal for float(): 1993ah"

2010/10/4 waleria_antunes <no_r...@yahoogrupos.com.br>



>
>
> Olá pessoal,
>
> Preciso ler um arquivo .txt, onde possuo 4 colunas mais preciso ler a
> partir da 2 coluna, porém esta me retornando o erro seguinte:
>
> Traceback (most recent call last):
> File "C:\dados.py", line 25, in <module>
> x = numpy.loadtxt('C:\dados.txt')[:0]
> File "C:\EPD\lib\site-packages\numpy\lib\io.py", line 630, in loadtxt
> X.append(tuple([conv(val) for (conv, val) in zip(converters, vals)]))
> ValueError: invalid literal for float(): 1993ah
>
> Vejam meu código: http://pastebin.com/6TmsiPkm
>
> O meu arquivo .txt ...possui essa estrutura: http://pastebin.com/wjiyRV80
>
> Alguém pode me ajudar?
>
>
>

--
Warmest regards,
Dilan Nery - @dilannery

[As partes desta mensagem que não continham texto foram removidas]

__._,_.___
Atividade nos últimos dias:
,-----------------------------------------------------------.
| Antes de enviar um e-mail para o grupo leia:              |
| http://www.pythonbrasil.com.br/moin.cgi/AntesDePerguntar  |
| E se você é usuário do BOL lembre-se de cadastrar o       |
| e-mail do grupo na lista branca do seu sistema anti-spam. |
`-----------------------------------------------------------´
.

__,_._,___

Vinicius Franco do Nascimento

unread,
Oct 4, 2010, 6:25:22 PM10/4/10
to python...@yahoogrupos.com.br
 

Meu caro,

Acredito que seria melhor você trabalhar com o CSV.
é simples e prático. Procure sobre a documentação do módulo.
Assim você poderá fazer um check antes de carregar os dados.

Um abraço,

Vinícius Franco do Nascimento

"Doing easily what others find difficult is talent; doing what is impossible
for talent is genius." -- Henri-Frederic Amiel

2010/10/4 Fabiano Santana <fassan...@gmail.com>

> O erro está acontecendo porque o programa está interpretando '1993ah' como
> um dado float.
> Não sei mexer com numpy mas talvez exista alguma maneira de você fazer com
> que ela interprete
> isso como string e então, posteriormente, você pode descarta esse dado,
> posto que você não deseja
> ler a primeira coluna. Certamente há procedimentos mais elegante que esse.
>
> Você pode tentar isso:
> ### inicio ###
> def Ler(arquivo):
> arq = open(arquivo,"r")
> linhas = []
> linha = True # apenas para inicial
> while(True): # 'quebrará' quando ler todas as linhas
> linha = arq.readline()
> if(linha):
> linha = linha.split("\t") # deve ser modificado para o tipo de separador de
> colunas no arquivo
> linha = linha[1:] # retira a primeira coluna
> linha[-1] = linha[-1][:-1] # para retinar o '\n' do final
> linhas.append(linha)
> else: break
> arq.close()
> return linhas
>
> print Ler("teste.txt")
> ### fim ###
>
> O resultado, para o exemplo, será:
> [['0.028488', '35.3355510594', '0.226143925635'], ['0.050043',
> '36.6754415683', '0.167114251513'], ['0.052926', '36.8168806729',
> '0.155866408242']]
> Ou seja, um lista de listas de string (feio).
>
> Em 4 de outubro de 2010 10:23, waleria_antunes
> <no_r...@yahoogrupos.com.br>escreveu:


>
> >
> >
> > Olá pessoal,
> >
> > Preciso ler um arquivo .txt, onde possuo 4 colunas mais preciso ler a
> > partir da 2 coluna, porém esta me retornando o erro seguinte:
> >
> > Traceback (most recent call last):
> > File "C:\dados.py", line 25, in <module>
> > x = numpy.loadtxt('C:\dados.txt')[:0]
> > File "C:\EPD\lib\site-packages\numpy\lib\io.py", line 630, in loadtxt
> > X.append(tuple([conv(val) for (conv, val) in zip(converters, vals)]))
> > ValueError: invalid literal for float(): 1993ah
> >
> > Vejam meu código: http://pastebin.com/6TmsiPkm
> >
> > O meu arquivo .txt ...possui essa estrutura:
> http://pastebin.com/wjiyRV80
> >
> > Alguém pode me ajudar?
> >
> >
> >
>
>
>

> --
> Att,
> Fabiano A. S. Santana
> Bacharelando em Ciência da Computação
> Universidade Federal do Tocantins
> +55 63 9241 6342


>
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>
>

> ------------------------------------
>
> ,----------------------------------------------------------.


> | Antes de enviar um e-mail para o grupo leia: |
> | http://www.pythonbrasil.com.br/moin.cgi/AntesDePerguntar |
> | E se você é usuário do BOL lembre-se de cadastrar o |
> | e-mail do grupo na lista branca do seu sistema anti-spam. |

> `----------------------------------------------------------´Links do
> Yahoo! Grupos


>
>
>

[As partes desta mensagem que não continham texto foram removidas]

__._,_.___
Atividade nos últimos dias:
,-----------------------------------------------------------.
| Antes de enviar um e-mail para o grupo leia:              |
| http://www.pythonbrasil.com.br/moin.cgi/AntesDePerguntar  |
| E se você é usuário do BOL lembre-se de cadastrar o       |
| e-mail do grupo na lista branca do seu sistema anti-spam. |
`-----------------------------------------------------------´
.

__,_._,___

waleria_antunes

unread,
Oct 5, 2010, 8:35:17 AM10/5/10
to python...@yahoogrupos.com.br
 

Bom, resolvi esse problema, no entanto apareceu um outro, agora me retorna esse erro: http://pastebin.com/eTq8npJU

Meu código: http://pastebin.com/dCwRnN2D

O que pode ser?

--- Em python...@yahoogrupos.com.br, Fabiano Santana <fassantanaatm@...> escreveu

__._,_.___
Atividade nos últimos dias:
,-----------------------------------------------------------.
| Antes de enviar um e-mail para o grupo leia:              |
| http://www.pythonbrasil.com.br/moin.cgi/AntesDePerguntar  |
| E se você é usuário do BOL lembre-se de cadastrar o       |
| e-mail do grupo na lista branca do seu sistema anti-spam. |
`-----------------------------------------------------------´
.

__,_._,___
Reply all
Reply to author
Forward
Message has been deleted
0 new messages