如何在python中生成增量为1分钟的多个时间戳

如何在python中生成增量为1分钟的多个时间戳,python,Python,我试图制作一个程序,读取IRC帖子,然后确定该频道的活动。将通过两种方式衡量活动: 每小时职位 上一时间步的活动变化 我想这样做的方式是创建一个列表字典。字典中的键将是一个时间戳,并且将精确增加一分钟。然后,我将扫描IRC日志中的所有行,并根据写文章的时间和日期将文章添加到相应的键中。因此,我不知道每分钟写多少篇文章,也不知道写了多少小时、几天等等 这是一个日志示例 '[2015-04-22 08:57:36] <Sirisian> [' 一个代码怎么能接受这个[2015-04-

我试图制作一个程序,读取IRC帖子,然后确定该频道的活动。将通过两种方式衡量活动:

每小时职位

上一时间步的活动变化

我想这样做的方式是创建一个列表字典。字典中的键将是一个时间戳,并且将精确增加一分钟。然后,我将扫描IRC日志中的所有行,并根据写文章的时间和日期将文章添加到相应的键中。因此,我不知道每分钟写多少篇文章,也不知道写了多少小时、几天等等

这是一个日志示例

'[2015-04-22 08:57:36] <Sirisian> [' 

一个代码怎么能接受这个[2015-04-22 08:57:00]并返回许多时间戳,所有这些时间戳都以1分钟为增量,直到将来的某个时间(许多天/月)?

看看datetime.timedelta。您可以将日志日期戳解析为更加实用的datetime对象。然后,只需添加和减去datetime.timedelta对象,即可获得过去或未来的时间。datetime对象也是可散列的,因此您可以直接将它们用作字典键,并可以从字符串中解析日期和时间,以便加载到日志中。您应该在看到它们时将帖子添加到此字典中,而不是在日志文件结束时猜测。这将使脚本可重用。您似乎还误解了如何打开文件。您还应该使用datetime模块来处理时间戳。以下是一个例子:

import datetime
import re

my_dict = {}
with open('Output.txt') as f:
    for line in f:
        stamp = re.search('\[(.+)\]', line)
        stamp = stamp.group(1)
        d = datetime.strptime(stamp, '%Y-%m-%d %H:%M:%s')
        d.seconds = 0
        msg = # here is where the message would go. you need to parse it out
        if d in my_dict:
            my_dict[d].append(msg)
        else:
            my_dict[d] = [msg]

使用它,您应该有一个可重用的脚本。

以下是一种使用该库的方法:

使用如下所示的Output.txt:

[2015-04-22 08:57:36] Hi
[2015-04-22 08:57:45] Yo
[2015-04-22 08:58:36] Hey
[2015-04-22 08:58:37] Ho
[2015-04-22 09:01:36] Let's
[2015-04-22 09:57:16] Go
[2015-04-22 09:57:26] Good bye
[2015-04-22 09:58:36] See Ya
[2015-04-22 09:59:36] Peace
您应该看到以下输出:

[2015-04-22 09:01:00] 1 +1
[2015-04-22 09:57:00] 2 +1
[2015-04-22 09:58:00] 1 -1
[2015-04-22 09:59:00] 1 0
[2015-04-22 08:57:36] Hi
[2015-04-22 08:57:45] Yo
[2015-04-22 08:58:36] Hey
[2015-04-22 08:58:37] Ho
[2015-04-22 09:01:36] Let's
[2015-04-22 09:57:16] Go
[2015-04-22 09:57:26] Good bye
[2015-04-22 09:58:36] See Ya
[2015-04-22 09:59:36] Peace
[2015-04-22 09:01:00] 1 +1
[2015-04-22 09:57:00] 2 +1
[2015-04-22 09:58:00] 1 -1
[2015-04-22 09:59:00] 1 0