Wpis z mikrobloga

Próbuję zapisać datę i wartości temp w pliku csv w Python:

with open('temp.scv', a, newline='') as file:
writer = csv.writer(file, delimiter=';')
writer.writerow([date, temp])

obecny format zapisu w pliku csv wyglada nastepujaco:

w jednej komórce jest 'data;temperatura'. Pytanie jak rozdzielić to tak, aby w Excelu w kolumnie A mieć datę, a w kolumnie B temperaturę?

Również chciałbym się dowiedzieć jak uzyskać nagłówki, wpisujac writer.header([naglowki]) gdzie naglowki = ['Data', 'Temperatura'] wyskakuje mi błąd :(

Dodam, że do pliku csv zapisywana jest data i temperatura co minutę.

#python #programowanie
  • 11
via Wykop Mobilny (Android)
  • 0
@PedzacaGuma: jak chcesz csv to robisz csv - comma separated value. Czyli przecinek. Wtedy Excel otworzy poprawnej. Jeśli musi być średnik to musisz importować w excelu, nie otwierać bezpośrednio
@PedzacaGuma: to zależy jaki masz ustawiony separator w systemie. Możesz sprawdzić w panelu sterowania -> zmień format daty, godziny -> dodatkowe. I taki sam separator musisz ustawić przy generowaniu pliku.

Nagłówek tworzysz jako listę
nag=[data,temperatura]

Następnie najpierw zapisujesz nagłówek a później dane

writer.writerow(nag)
writer.writerows(dane)
@Sibu: @brakslow:

U mnie jest akurat tworzenie csv na podstawie jsona "results"ale mozesz sobie wrzucic swoje wartosci zamiast tego

with open('test.csv', 'w', newline='') as csvfile:
fieldnames = ['id','name']
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writeheader()
for result in response['results']:
writer.writerow({'id':result['id'],'name':result['name']})
@Sibu: @brakslow hej, zadziałał sposób od @Sibu. Jednak mam kolejny problem, a mianowicie po minucie kiedy zapisywana jest kolejna data, nagłówki również są zapusywane, przez co co drugi wiersz to fieldnames. Czy da radę zrobić tak aby nagłówek był zapisany tylko raz na początku?
@PedzacaGuma:

Sprawdzaj czy pierwsza linia nie ma naglowka albo czy nie jest pusta, albo czy plik nie jest pusty i skipuj dodawanie naglowoka w takim przypadku. Ja tego kodu uzywalem do generowania raportow takze generowalem plik, wysylalem mailem i usuwalem. Faktycznie masz troche inny use-case