isnumeric
Verfasst: Samstag 4. Dezember 2010, 14:13
Hallo,
kann mir bitte jemand weiterhelfen. Ich lese aus einer Textdatei mehrere Zeilen ein.
Die Zeilen bestehen in der Regel aus Zahlenkolonnen, wie folgende Beispiel zeigt:
Am Anfang der Datei stehen aber einige Zeilen, welche den Aufbau der Datei beschreiben. Mit anderen Worten dort steht Text!
Ich wollte nun mit der Methode "isNumeric" prüfen, ob es sich um eine Textzeile handelt, welche rein aus Zahlen besteht. Wenn ja, konvertiere ich die Daten in Fließkommazahlen; andernfalls wird die Zeile ignoriert. Nun meine Frage:
Wie verwendet man die Funktion isNumeric? Ich werde aus dem Beispiel im Manual nicht schlau und erhalte dauernd Fehlermeldungen: Hier mein Code-Ausschnitt:
kann mir bitte jemand weiterhelfen. Ich lese aus einer Textdatei mehrere Zeilen ein.
Die Zeilen bestehen in der Regel aus Zahlenkolonnen, wie folgende Beispiel zeigt:
Code: Alles auswählen
0.000001 0.00002 0.0003
Ich wollte nun mit der Methode "isNumeric" prüfen, ob es sich um eine Textzeile handelt, welche rein aus Zahlen besteht. Wenn ja, konvertiere ich die Daten in Fließkommazahlen; andernfalls wird die Zeile ignoriert. Nun meine Frage:
Wie verwendet man die Funktion isNumeric? Ich werde aus dem Beispiel im Manual nicht schlau und erhalte dauernd Fehlermeldungen: Hier mein Code-Ausschnitt:
Code: Alles auswählen
import math
import io
import string
def ReadDataFromFile(Path, Filename1, Container, TranslationX, TranslationR):
#
pFilename = str(Path + "\\" + Filename1)
#
with open(pFilename, "r") as inpfile:
i = 0
for line in inpfile:
print "Zeile: (", line, ")", line.isNumeric()
line = line.strip()
words = line.split( )
i = i + 1
#
if (line.isnumeric() == True):
Container.X.append(float(words[0]))
Container.X[i] = Hub.X[i] + TranslationX
#
Container.R.append(float(words[1]))
Container.R[i] = Hub.R[i] + TranslationR
#
if (i == 0):
Container.M.append(0.0)
else:
dx = (Container.X[i] - Container.X[i-1])
dr = (Container.R[i] - Container.R[i-1])
dm = math.sqrt(pow(dx, 2) + pow(dr, 2))
Container.M.append(Container.M[i] + dm)
#
Container.IMax = i
#
inpfile.close()