Ich habe eine CSV-Datei mit 3 Spalten von Daten. Ich muss eine neue Ausgabedatei erstellen, die einen bestimmten Datensatz aus der ersten und dritten Spalte der Originaldatei enthält. Die dritte Spalte enthält Dezimalwerte, und ich glaube, dass ich in einem solchen Fall die Funktion float() von Python verwende. Ich habe den folgenden Code versucht:Ungültiges Literal für float(): 0.000001, wie Fehler zu beheben?
in_file = open("filename.csv", "r")
out_file = open("output.csv", "w")
while True:
line = in_file.readline()
if (line == ''):
break
line = line.strip()
items = line.split(',')
gi_name = items[0]
if (gi_name.startswith("_"))
continue
p_value = float(items[2])
if (p_value > 0.05):
continue
out_file.write(','.join([gene_name, str(p_value)]))
in_file.close()
out_file.close()
, wenn ich die oben laufen, Ich erhalte die folgenden Fehler:
Fehler: ungültige wörtlichen für Schwimmer(): 0,000001
der Wert 0.0000001 ist die erste Wert in meinem Datensatz für die dritte Spalte, und ich denke, der Code kann nicht über diesen Satz hinaus lesen, aber ich bin mir nicht sicher warum. Ich bin neu bei Python und verstehe nicht wirklich, warum ich diesen Fehler bekomme oder wie ich ihn behebe. Ich habe andere Modifikationen versucht, wie man den float() eingibt, aber ohne Erfolg. Weiß jemand, wie ich das beheben könnte?
Haben Sie überlegt, das ['csv'-Modul] (http://docs.python.org/library/csv.html) zu verwenden? –
Das Hinzufügen einiger Zeilen Ihrer CSV-Datei zur Frage wäre für die Reproduktion hilfreich. –