PDA

View Full Version : [Python] lettura da file


gdg87
25-07-2010, 19:20
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()
come faccio a fare la conversione allora visto che anche nel tutorial ufficiale di python la spiega in questo modo?

Ryuzaki_Eru
26-07-2010, 03:07
A parte che stai usando "input", che è il nome di una funzione, come nome di variabile. Poi read() legge *tutto* il file, compresi quindi le tabulazioni, in questo modo non puoi convertire niente in float ovviamente. Se vuoi aggiungere i numeri nella lista puoi fare:

with open('C:\Users\Gianluca\Desktop\dati.txt') as f:
for line in f:
pts.append(float(line))