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

voase2hg  于 2022-12-06  发布在  Python
关注(0)|答案(1)|浏览(142)

我写了一个脚本,我从json文件下载了一个数据(关于温度和日期时间的数据),我想把数据保存在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看起来像这样:
enter image description here
但我想要:enter image description here
谢谢你的帮助,达维德

jdzmm42g

jdzmm42g1#

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

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文件存在,因此不再写入表头。

相关问题