使用 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 文件来说有点矫枉过正
对于我想用 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 文件来说有点矫枉过正