gpt4 book ai didi

python - 如何从日志文件条目中计算每小时的访问次数?

转载 作者:太空狗 更新时间:2023-10-30 00:59:03 25 4
gpt4 key购买 nike

我有一个日志文件,其中每一行都包含 IP 地址、访问时间和访问的 URL。我想统计每小时的访问量。

访问数据的时间是这样的

[01/Jan/2017:14:15:45 +1000]
[01/Jan/2017:14:15:45 +1000]
[01/Jan/2017:15:16:05 +1000]
[01/Jan/2017:16:16:05 +1000]

我怎样才能改进它,这样我就不需要为每个小时设置变量和 if 语句?

twoPM = 0
thrPM = 0
fouPM = 0
timeStamp = line.split('[')[1].split(']')[0]
formated_timeStamp = datetime.datetime.strptime(timeStamp,'%d/%b/%Y:%H:%M:%S %z').strftime('%H')
if formated_timeStamp == '14':
twoPM +=1
if formated_timeStamp == '15':
thrPM +=1
if formated_timeStamp == '16':
fouPM +=1

最佳答案

  1. 您可以将方括号包含在您的 strptime 格式描述中:

    datetime.datetime.strptime(line.strip(),'[%d/%b/%Y:%H:%M:%S %z]')
  2. 您可以使用任何 datetime.datetime 对象的 .hour 属性提取小时:

    timestamp = datetime.datetime.strptime(…)
    hour = timestamp.hour
  3. 您可以使用 collections.Counter 计算元素的数量:

    from collections import Counter


    def read_logs(filename):
    with open(filename) as log_file:
    for line in log_file:
    timestamp = datetime.datetime.strptime(
    line.strip(),
    '[%d/%b/%Y:%H:%M:%S %z]')
    yield timestamp.hour


    def count_access(log_filename):
    return Counter(read_logs(log_filename))


    if __name__ == '__main__':
    print(count_access('/path/to/logs/'))

关于python - 如何从日志文件条目中计算每小时的访问次数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45814191/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com