Bevor ich als Duplikat gekennzeichnet habe, habe ich 5 weitere ähnliche Themen gelesen, die aber nicht zu funktionieren schienen.Zurückschreiben der geänderten CSV-Datei
Ich konnte einen Wert in einer CSV-Datei ändern. Ich kann jedoch nicht herausfinden, wie ich die ganze Datei zurückschreibe. Ich konnte die geänderte Zeile nur zurückschreiben.
Code:
import csv
file=open("stock.csv")
stockfile= csv.reader(file)
for line in stockfile:
if GTIN in line:
currentstock= line[2]
targetstock = line[3]
newstock = (int(currentstock) - int(Quantity))
targetstock = str(targetstock)
newstock = str(newstock)
line[2]= int(newstock)
print(line)
with open("output.csv","w") as outfile:
newdata = csv.writer(outfile)
newdata.writerow(line)
if newstock<targetstock:
print("stock needs updating...please wait a moment")
else:
print("stock is fine")
Stock.csv:
86947367,banana,100,40
78364721,apple,50,20
35619833,orange,20,30
84716491,sweets,200,90
46389121,chicken,40,10
output.csv: (nur schreibt die geänderte Linie zurück und nicht den Rest der Datei)
86947367 banana 1 40
Ich möchte:
86947367,banana,1,40
78364721,apple,50,20
35619833,orange,20,30
84716491,sweets,200,90
46389121,chicken,40,10
danke.
Ich habe festgestellt, dass Sie stockfile Zeile für Zeile lesen. Ich habe auch bemerkt, dass die einzige Zeit, etwas, wenn die folgende Bedingung erfüllt ist output.csv geschrieben: 'wenn GTIN in Zeile:' Werfen Sie einen Blick auf das, was in dieser if-Anweisung eingeschlossen ist. – GandhiGandhi