2016-11-01 14 views
0

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.

+0

Wie eine CSV sollten Sie dies nicht als Komma getrennt anstatt Semikolon getrennt haben? – ugoano

+0

@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

+0

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

Antwort

0

Um mit unterschiedlichen OS zu arbeiten, können Sie die os.linebreak Attribut verwenden. Zum Beispiel:

import os 

multiline = 'line 1' + os.linesep + 'line 2' 

In Ihrem Fall all \n mit os.linesep ersetzen.

+0

Schön. Vielen Dank. – derMatt

0

Versuchen Sie es mit "\ r \ n" anstelle von "\ n"

Verwandte Themen