如何在csv文件中写入数据的下一个循环中跳过标题- Python



我写了一个脚本,在那里我从json文件下载数据(关于温度和datetime数据),我想把数据保存在csv文件。该脚本每分钟设置一个时间表,从json下载新数据。我有一个问题。运行代码会使数据正确写入,但每次都带有标头。问题是如何保存头只一次?

我的脚本:…

with open('Temp.csv', 'a', newline='') as file:
fieldnames = ['Date', 'Temp']
writer = csv.DictWriter(file, fieldnames=fieldnames)
writer.writeheader()
writer.writerow({'Date':now, 'Temp':Temperatura})

我的DataFrame看起来像这样:

输入图片描述

但是我想:输入图片描述

谢谢你的帮助,Dawid

您需要在第一行之前写入标题。因此,检查文件是否存在,以决定是否写入头文件。


import os 
file_exists = os.path.exists('Temp.csv')
with open('Temp.csv', 'a', newline='') as file:
fieldnames = ['Date', 'Temp']
writer = csv.DictWriter(file, fieldnames=fieldnames)
if not file_exists:
writer.writeheader() # So the header is written only once just before the first row
writer.writerow({'Date':now, 'Temp':Temperatura})

对于其余行,由于csv文件存在,因此不再写入header。

最新更新