【发布时间】:2016-07-21 12:58:46
【问题描述】:
csv 看起来像这样:
2016-04-01 02:17 16.7 51.9
2016-04-01 02:18 16.7 51.9
2016-04-01 02:19 16.6 52.0
2016-04-01 02:20 16.6 52.2
2016-04-01 02:21 16.7 52.2
2016-04-01 02:22 16.7 52.1
2016-04-01 02:23 16.6 52.2
2016-04-01 02:24 16.6 52.2
2016-04-01 02:25 16.6 52.2
文件每分钟记录一次传感器的温度和湿度。每个测量都是cvsfile 中的一行。
我想遍历这个文件并添加行,具体取决于字典的时间。
所以一个字典应该保存从now到now - 24hours的所有行,另一个字典应该保存从now到now - 1week的所有行。 Now是当前时间,脚本已启动。
我不确定如何在迭代中做到这一点(如果可能的话)。
这就是我打开文件并定义 TimeRow 的方式:
for row in f_reader:
stringRowDate = row[0]
Date = datetime.datetime.strptime(stringRowDate,"%Y-%m-%d %H:%M")
stringDateNow = datetime.datetime.now().strftime("%Y-%m-%d %H:%M")
DateNow = datetime.datetime.strptime(stringDateNow,"%Y-%m-%d %H:%M")
csvFile 打开的我的代码:
if Date >= DateNow:
continue
elif Date >= (DateNow - timedelta(weeks=1)):
data_Week = {row[0]:row[1:] for row in f_reader}
rownum +=1
data_Week是现在保存文件中从now到1 Week之前的所有行的字典。
我可以通过使用相同的迭代将24hours 中的每一行添加到另一个字典 (data_24) 吗?
【问题讨论】:
-
文件是否按日期排序?
-
编辑了问题,是的,文件按日期排序
标签: csv python-3.x dictionary iteration