Scusate se posto l'intero programma, ma sto diventando pazzo per cercare di
capire perchè ad un certo pto il mio programma python mi da un TypeError.
Il programma è il seguente:
from Numeric import *
from string import *
import os
def Convert_value(input_file):
number = input_file.readlines()
number.sort()
temp = []
try:
for i in range(len(number)): ### L'ERRORE SI VERIFICA QUI!!!!
temp.append(float(number[i]))
except TypeError:
print "Errore"
return temp
def Create_file_out(lista,output_file,min,max,range):
i=0
printed=1
count=0
while(i < len(lista) and min < max):
if(printed):
output_file.write('range\t'+str(min)+'-'+str(min+range)+'\n\n')
if(min <= lista[i] <= min+range ):
temp=(str(lista[i]))
output_file.write(str(temp)+'\n')
i=i+1
count=count+1
printed=0
else:
output_file.write('#totale elementi range '+str(count)+'\n')
min = min+range
count=0
printed=1
lista_file=os.listdir("./input_file")
for j in range(len(lista_file)):
try:
input_file = open("./input_file/"+lista_file[j],"r")
except IOError:
print "file "+lista_file[j]+" non esiste"
float_number=Convert_value(input_file)
input_file.close()
print "Viene creato il file di output per il file "+lista_file[j]+" preso
come input"
try:
min = float(raw_input("Inserire il valore minimo: "))
max = float(raw_input("Inserire il valore massimo: "))
range = float(raw_input("Inserire il range desiderato: "))
except ValueError:
print "Non e'stato inserito un numero valido."
output_file=open(lista_file[j]+"_out.txt","a")
Create_file_out(float_number,output_file,min,max,range)
output_file.close()
Quello che fa questo programma è prendere tutti i file che sono contenuti in
una cartella di input, convertire il contenuto dei file da stringhe a float,
ordinarli e contarli per intervallo di range.
Dove segnalo il problema accade che per il primo file che viene preso in
considerazione dal programma, non entro nel blocco "except" quindi nn mi da
errore; per il successivo file, qualunque esso sia, riporta il seguente errore
per la riga da me segnalata:
Traceback (most recent call last):
File "/home/fabio/aggiusta dati/data.py", line 44, in ?
float_number=Convert_value(input_file)
File "/home/fabio/aggiusta dati/data.py", line 10, in Convert_value
for i in range(len(number)):
TypeError: 'float' object is not callable
I file che mando in input contengono un numero variabile di numeri float
ovviamente espressi, nel file, come stringhe.
Vi prego aiutatemi, nn so dove sbattere la testa.
P.s. ho usato un debugger ma i valori i tipi ecc ... sono tutti quelli che mi
aspetto e sono corretti.
Grazie.
Fabio
___________________________________
L'email della prossima generazione? Puoi averla con la nuova Yahoo! Mail:
http://it.docs.yahoo.com/nowyoucan.html
_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python