Ich habe eine .CSV, die ich versuche, einzelne Zeilen zu lesen, machen Berechnungen aus einzelnen Werten in den Zeilen, dann hängen Sie die aus den Berechnungen resultierenden Werte an das Ende dieser Zeile an. Mein Ansatz besteht darin, durch jede Zeile zu iterieren, den Wert aufzurufen, die Berechnung von diesem Wert aus vorzunehmen und dann an diese Zeile anzufügen. Hier ist der aktuelle Code (an einem Punkt habe ich es geschafft, alle Berechnungen an die letzte Zeile der CSV-Zeile anzuhängen, was vielversprechend aber falsch war. Im Moment bekomme ich einen '' _csv.writer 'Objekt ist nicht iterierbar' type error):Ich muss einzelne Zeilen in einer CSV lesen, Berechnungen aus Werten in diesen Zeilen (x2) vornehmen und diese Zeilen dann mit den neuen Werten anfügen
import csv
import math
f = open('planet_data.csv','a+')
writer = csv.writer(f)
for row in writer: <- loction of error
if row[1] == 'Planet_Radius': <- To bypass csv header values
pass
else:
a = int(row[1])
b = str((4/3)*math.pi*(a**3))
row.writerow(b)
print row
Jede Hilfe würde geschätzt, ich den Code erraten wird noch nach dem Iterator Problem arbeiten müssen behoben ist. Ich vermute auch, dass es Pakete/Module gibt, die das vereinfachen können, aber der Zweck dieser Übung ist es, zu lernen, wie man csvs manuell durchläuft.
Es wäre einfacher und sicherer, in eine zweite CSV-Datei zu schreiben. Schließlich werden Sie auf ein unausgefülltes Zitat stoßen oder auf etwas, das Sie nicht erwartet haben, und Ihr Programm wird abstürzen und Sie mit einer beschädigten, teilweise aktualisierten Datei verlassen. –