Float muss eine Zeichenfolge oder eine Zahl sein?

8

Ich habe ein sehr einfaches Programm. Der Code:

%Vor%

Die Textdatei money.txt enthält nur Folgendes:

%Vor%

Die Fehlermeldung, die ich erhalte, lautet:

%Vor%

Es ist wahrscheinlich ein einfacher Fehler. Irgendein Rat? Ich benutze Python 3.3.3.

    
Pancake_Senpai 29.05.2015, 14:08
quelle

3 Antworten

9

money ist ein file -Objekt , nicht der Inhalt der Datei. Um den Inhalt zu erhalten, musst du read der Datei angeben. Wenn die gesamte Datei nur diese eine Nummer enthält, ist read() alles, was Sie brauchen .

%Vor%

Andernfalls können Sie readline() verwenden, um eine einzelne Zeile oder zu lesen Probieren Sie sogar das Modul csv für komplexere Dateien aus.

Vergessen Sie auch nicht close() die Datei, wenn Sie es sind fertig oder verwenden Sie das Schlüsselwort with , um es automatisch zu schließen.

%Vor%     
tobias_k 29.05.2015, 14:13
quelle
4

Money ist eine Datei, keine Zeichenfolge, daher können Sie eine ganze Datei nicht in eine Gleitkommazahl konvertieren. Stattdessen können Sie etwas tun, wo Sie die ganze Datei in eine Liste lesen, wobei jede Zeile ein Element in der Liste ist. Sie würden es durchlaufen und so konvertieren.

%Vor%     
heinst 29.05.2015 14:09
quelle
0

Es ist besser, "mit" zu verwenden, wenn eine Datei in Python geöffnet wird. Auf diese Weise wird die Datei implizit geschlossen, nachdem die Operation abgeschlossen ist

%Vor%     
itzhaki 29.05.2015 14:12
quelle