在python中合并日志数据

时间:2017-12-04 17:27:43

标签: python

我有7个单独文件中的日志数据,我需要将其合并到一个文件中,然后才能对其进行任何页面分析。下面我提供了一个日志数据文件中的一行示例

207.46.13.124 - - [01/Jun/2015:00:00:04 +0000] "GET /maritime/collections/hmsconway/hiscock/index.aspx HTTP/1.0" 200 "Mozilla/5.0 (iPhone; CPU iPhone OS 7_0 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A465 Safari/9537.53 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)"

文件的名称为u_ex150601u_ex150602u_ex150603u_ex1506014u_ex150605u_ex150606和{{1} }。

如何使用Python将所有这些合并在一起?

1 个答案:

答案 0 :(得分:3)

我个人建议使用bash。像,

cat u_ex15* >> all_logs

但是在python中你可以简单地使用以下内容:

import glob
all_log_filename = 'all_logs'
log_files = glob.glob('u_ex15*')
for filename in log_files:
    with open(filename) as reader:
        with open(all_log_filename, 'a') as writer:
             writer.write(reader.read())

注意:这是最简单的情况,您的日志文件不是那么大。如果您的日志文件很大,您可能希望迭代每一行或多个块,以免您遇到内存问题。你能做的最简单的事情就是:

for filename in log_files:
    with open(filename) as reader:
        with open(all_log_filename, 'a') as writer:
            for line in reader:
                writer.write(line)