我刚开始学习Python,想读一个Apache日志文件,把每行的一部分放到不同的列表中。
文件中的行
172.16.0.3 - - [25/Sep/2002:14:04:19 +0200] "GET / HTTP/1.1" 401 - "" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.1) Gecko/20020827"
根据Apache website,格式是
%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\
我可以打开文件并按原样读取它,但我不知道如何使它以那种格式读取,这样我就可以将每个部分放入一个列表中。
我已经创建了一个python库,它可以做到这一点:apache-log-parser。
使用正则表达式将行拆分为单独的“标记”:
另一种解决方案是使用专用工具,例如http://pypi.python.org/pypi/pylogsparser/0.4
这是regular expressions的作业。
例如:
输出将是一个元组,该行包含6条信息(特别是该模式中括号内的组):
相关问题 更多 >
编程相关推荐