使用 python 自动创建 csv 文件

automaticaly create csv file using python

对于我想用 Raspberry Pi 记录传感器数据的项目,我想将每小时的测量序列保存为新的 csv 文件。

如何自动创建一个 CSV 文件 python 并将测量的开始和结束时间作为名称?

编辑:我的 Df 看起来像这样:

我想将 csv 文件命名如下:“StartDate + EndDate .csv”但我不知道如何让它工作... 这是我的方法:

import Adafruit_DHT
import time
import datetime
import pandas as pd


dht_sensor = Adafruit_DHT.DHT11

dht_11_pin = 4


data = {'Date': [], 'Temperature': []}


def readDht11Values(data):
        humidity, temperature = Adafruit_DHT.read_retry(dht_sensor, dht_11_pin)
        if humidity is not None and temperature is not None:
                date = datetime.datetime.now().strftime('%m-%d-%Y_%H.%M.%S')
                #print(date)
                data["Date"].append(date)
                #print('Temperatur={0:0.1f}*C Luftfeuchtigkeit={1:0.1f}%'.format(temperature, humidity))
                data["Temperature"].append(temperature)
                          
                
        else:
                print('DHT11')
        return data

def save_file(data):
    df = pd.DataFrame(data)
    start = df["Date"][0]
    end = df["Date"][len(df)]
    name = str(start)+str(end)
    filename = str(name)+".csv"
    df.to_csv(filename, index=False)

for i in range(0,3):
    i = i+1
    data = readDht11Values(data)
    time.sleep(2)


save_file(data)

如果是普通的 csv 文件,根本不用 pandas 就可以逃脱。例如

def save_file(data):
    filename = f"{data['Date'][0]}to{data['Date'][-1]}.csv"  # list[-1] gives last element in the list
    with open(filename, 'w') as file:
        for i in range(0, len(data['Date']):
            file.write(f"{data['Date'][i]},{data['Temperature'][i]}\n")

避免 pandas 可能非常有用,因为它对于只写 csv 文件来说有点矫枉过正