[Python] lettura da file

marx1
Ciao è la prima volta che mi trovo ad avere a che fare con python debbo leggere dei numeri da file e passarli ad una funzione che mi crea un grafico ma quando faccio la conversione dal stringa cioè il numero letto da file a float mi da il seguente erroe:
Traceback (most recent call last):
  File "C:\Users\Gianluca\Desktop\prova1.py", line 10, in -toplevel-
    pts.append((float(testo), float(testo) ))
ValueError: invalid literal for float(): 1
2
3
4
5
6
7


il codice del programma è il segunete:
import heatmap
import random

input = open('C:\Users\Gianluca\Desktop\dati.txt','r')

testo = input.read()
print testo
pts=[]

pts.append((float(testo), float(testo) ))

print pts

hm = heatmap.Heatmap()
hm.heatmap(pts, "classic.png")

input.close()


perchè succede ciò??

Risposte
Rggb1
Da pydoc:
 |  read(...)
 |      read([size]) -> read at most size bytes, returned as a string.
 |      
 |      If the size argument is negative or omitted, read until EOF is reached.
 |      Notice that when in non-blocking mode, less data than what was requested
 |      may be returned, even if no size parameter was given.

Quindi leggi il file intero. Magari vuoi una cosa diversa:
 |  readline(...)
 |      readline([size]) -> next line from the file, as a string.
 |      
 |      Retain newline.  A non-negative size argument limits the maximum
 |      number of bytes to return (an incomplete line may be returned then).
 |      Return an empty string at EOF.

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.