我刚刚开始学习 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 ) 壁虎/20020827"
根据阿帕奇网站格式是
%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{用户代理}i\
我可以打开该文件并按原样读取它,但我不知道如何使其以该格式读取,以便我可以将每个部分放入列表中。
这是一份工作常用表达.
例如:
line = '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"'
regex = '([(\d\.)]+) - - \[(.*?)\] "(.*?)" (\d+) - "(.*?)" "(.*?)"'
import re
print re.match(regex, line).groups()
输出将是一个元组,其中包含该行中的 6 条信息(具体来说,该模式中括号内的组):
('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')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)