解析纯文本文件中的时间戳,并每隔5分钟计算一次

2024-05-14 19:40:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我的输入是一个包含6000个时间戳的纯文本文件,如下所示

2011-06-21 13:17:05,905
2011-06-21 13:17:11,371
2011-06-21 13:17:16,380
2011-06-21 13:17:20,074
2011-06-21 13:17:20,174
2011-06-21 13:17:24,749
2011-06-21 13:17:27,210
2011-06-21 13:17:27,354
2011-06-21 13:17:29,231
2011-06-21 13:17:29,965
2011-06-21 13:17:32,100
2011-06-21 13:17:32,250
2011-06-21 13:17:45,482
2011-06-21 13:17:51,998
2011-06-21 13:18:03,037
2011-06-21 13:18:04,504
2011-06-21 13:18:10,019
2011-06-21 13:18:27,434
2011-06-21 13:18:29,960
2011-06-21 13:18:30,525
...

我的输出应该是一个CSV文件,计算从“整小时”开始的每5分钟时隙之间找到了多少行

输出示例:

^{pr2}$

谢谢!在


Tags: 文件csv示例时间时隙小时文本文件pr2
1条回答
网友
1楼 · 发布于 2024-05-14 19:40:47

这是未经测试的,您必须自己实现时间转换函数。您将不得不在时间模块中查找实现您所需功能的函数。convert_time_string_to_unix_time应将时间字符串转换为自1970年1月1日起的相应毫秒数(标准unix时间戳)。在

它所做的基本上是将时间划分为5分钟的时隙,循环遍历所有的时间戳,并为该时间戳的时隙增加时间戳的数量,每找到一个时间戳就增加1个。然后它只迭代所有找到的插槽,并将它们转换回时间戳,并打印为该插槽找到的时间戳的数量。在

SLOT_LENGTH = 1000 * 60 *5
for line in file:
    slot = convert_time_string_to_unix_time(line) / SLOT_LENGTH
    bucket[slot] = bucket.get(slot, 0) + 1

for slot in sorted(bucket.keys()):
    print(
        convert_unix_time_to_time_string(slot * SLOT_LENGTH),
        convert_unix_time_to_time_string((slot + 1) * SLOT_LENGTH - 1),
        bucket[slot]
    )

相关问题 更多 >

    热门问题