2016-11-01 7 views
0

Я работаю над Python-Script, который обрабатывает информацию о погоде с сайта и помещает его в CSV-файл каждый день.Python, напишите новую строку в CSV-файле

Я хочу добавить новую информацию ниже, а не непосредственно позади нее.

Это мой CSV-Append-Function:

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() 

Что я получаю:

Datum;Luft-Min;Luft-Max;Durchschn.Wassertemp;Barometer01.11.2016;9.5;6.8;12;1023.2 

Что я хочу:

Max;Durchschn.Wassertemp;Barometer 

01.11.2016;9.5;6.8;12;1023.2 

Может кто-нибудь мне помочь? Большое спасибо.

+0

Как CSV, вы не должны иметь это как разделенное запятыми, а не разделяемое двоеточием? – ugoano

+0

@ugano, к сожалению, нет соглашения о том, как файлы CSV отформатированы. Поэтому вы можете использовать все, что захотите. @derMatt Вы работаете в Windows или Linux? Я подозреваю, что ваши строки * заканчиваются на '\ n', но ваш редактор не разбивает строку при просмотре файла. – swenzel

+0

Я не слишком хорошо знаком с классом 'bytes', но я подозреваю, что проблема в этой строке. можете ли вы просто написать заголовок без каких-либо дополнительных аргументов? – Repiklis

ответ

0

Для того, чтобы работать с различными операционными системами, вы можете использовать атрибут os.linebreak. Например:

import os 

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

В вашем случае замените все \n с os.linesep.

+0

Ницца. Большое спасибо. – derMatt

0

Попробуйте использовать «\ г \ п» вместо «\ п»

 Смежные вопросы

  • Нет связанных вопросов^_^