Ich versuche, die Daten aus einer CSV-Datei zu bekommen, in eine Liste von Tupeln zu trennen, Sachen damit zu tun, dann speichern Sie die Änderungen zurück in die CSV-Datei. Mein Problem ist, dass anstelle der Daten, die ich habe, die Änderungen als neue Zeilen am Ende meiner Datei hinzugefügt werden. Ich versuche zu vermeiden, die Datei erneut zu öffnen und das csv-Modul zu verwenden. Im folgenden Code öffne ich es, speichere es als meine Liste von Tupeln und versuche es wieder in der Datei zu speichern, aber es hängt stattdessen die Datei an.Öffnen von csv mit r + und es ist das Schreiben an das Ende der Datei
items_data = open("test.csv", "r+")
my_list = items_data.read().strip().split('\n')
for line in range(len(my_list)):
my_list[line] = tuple(my_list[line].split(","))
for i in range(len(my_list)):
for a in range(0,4):
if a==3:
items_data.write(my_list[i][a] + "\n")
else:
items_data.write(my_list[i][a] + ",")
items_data.close()
Es ist normalerweise besser, Daten in eine neue Datei zu schreiben und sie dann umzubenennen, wenn alles in Ordnung war. Andernfalls könnte die Datei fehlerhaft sein, wenn Ihr Programm einen Laufzeitfehler aufweist. – Marichyasana