我在一个目录中有很多.csv文件,这些文件来自一个能量测量设备,它每两秒钟存储一次文件。 每个文件看起来类似于:
Position,Date,Time,V12,Unit,V23,Unit,V31,Unit,A1,Unit,A2,Unit,A3,Unit,P(SUM),Unit,S(SUM),Unit,Q(SUM),Unit,PF(SUM),Unit,PFH,Unit,WH,Unit,SH,Unit,QH,Unit,FREQ,Unit
0,7/21/2016,23:59:56,392.5, ACV,394, ACV,393.2, ACV,1.053, ACA,1.045, ACA,0, ACA,0.367,KW ,0.432,KVA ,0.229,KVAR,0.84,,0.85,,854.6,KWH ,1,MVAH ,516.8,KVARH ,50,Hz
0,7/21/2016,23:59:58,392.6, ACV,394.1, ACV,392.9, ACV,1.053, ACA,1.048, ACA,0, ACA,0.368,KW ,0.433,KVA ,0.229,KVAR,0.84,,0.85,,854.6,KWH ,1,MVAH ,516.8,KVARH ,50,Hz
0,7/22/2016,0:00:00,392.5, ACV,394, ACV,392.5, ACV,1.049, ACA,1.042, ACA,0, ACA,0.366,KW ,0.431,KVA ,0.228,KVAR,0.84,,0.85,,854.6,KWH ,1,MVAH ,516.8,KVARH ,49.9,Hz
0,7/22/2016,0:00:02,392.1, ACV,393.5, ACV,392.1, ACV,1.047, ACA,1.039, ACA,0, ACA,0.363,KW ,0.428,KVA ,0.226,KVAR,0.84,,0.85,,854.6,KWH ,1,MVAH ,516.8,KVARH ,50,Hz
有时文件中只有一天,有时两天或更多天(如果测量停止)。有时数据之间会有一个标题(当测量停止并重新开始时)。 每个文件由30000行组成,数据按升序排序。在
我想为每一天制作一个通过日期命名的文件。在本例中,它将是2016-07-21.csv
(可以在第二列中找到日期)。文件应该以您在上面找到的标题行开始。在
可在此处找到示例文件: Sample files
有没有完成任务的脚本?在
以下方法可以帮助您开始:
这将读取所有的csv文件,对条目进行排序,并每天将其写入一个单独的csv文件中。它使用Python
defaultdict
来保存每天的条目列表。它还将日期和时间列转换为Pythondatetime
,以便在写入输出文件之前,所有条目都能正确排序。glob
库用于返回给定文件夹的.csv
文件的列表。如果需要子文件夹,则需要将其转换为使用os.walk()
。csv
库用于自动将csv文件读入列表中。在使用Python2.7.12进行测试
相关问题 更多 >
编程相关推荐