Ich arbeite an einem Python-Script, das täglich Wetterinformationen von einer Website aufnimmt und in eine CSV-Datei legt.Python, schreibe eine neue Zeile in eine CSV-Datei
Ich möchte die neuen Informationen unten und nicht direkt dahinter anhängen.
Dies ist meine CSV-Append-Funktion:
def save_data(weatherdatasaved):
filename = "weather.csv"
header="Datum;Luft-Min;Luft-Max;Durchschn.Wassertemp;Barometer"+"\n"
#Check whether the file exists
if(os.path.exists(os.path.expanduser(filename))==False):
file = open(os.path.expanduser(filename),"wb")
file.write(bytes(header, encoding="ascii",errors="ignore"))
file.close()
file = open(os.path.expanduser(filename),"a")
i=0
while (i < len(weatherdatasaved)):
if((i+1)==len(weatherdatasaved):
file.write(weatherdatasaved[i]+"\n")
else:
file.write(weatherdatasaved[i]+";")
i+=1
file.close()
Was ich dir:
Datum;Luft-Min;Luft-Max;Durchschn.Wassertemp;Barometer01.11.2016;9.5;6.8;12;1023.2
Was ich will:
Max;Durchschn.Wassertemp;Barometer
01.11.2016;9.5;6.8;12;1023.2
Kann mir jemand helfen? Vielen Dank.
Wie eine CSV sollten Sie dies nicht als Komma getrennt anstatt Semikolon getrennt haben? – ugoano
@ugano Leider gibt es keine Übereinstimmung darüber, wie CSV-Dateien formatiert werden. Also kannst du benutzen, was du willst. @derMatt Sind Sie auf Windows oder Linux? Ich vermute, deine Zeilen * enden * mit '\ n', aber dein Editor bricht die Zeile nicht, wenn er die Datei anschaut. – swenzel
Ich bin nicht so vertraut mit der 'bytes' Klasse, aber ich vermute, dass das Problem in dieser Zeile ist. können Sie versuchen, den Header ohne zusätzliche Argumente zu schreiben? – Repiklis