我正在尝试分析包含ping信息的文本文件中的一些日志。
这是文本文件输出的一个小示例:
[2020-06-01 21:54:15.924620] 64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.029 ms
[2020-06-01 21:54:16.968341] 64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.078 ms
我写了一个小的python正则表达式脚本,从time = x.xxx ms部分提取时间:
with open("ping_test.txt",'r') as fp:
for line in fp:
line = line.strip()
print(re.search(r'time=(\d.\d*)',line).group(1))
预期输出:x.xxx
实际输出:AttributeError: 'NoneType' object has no attribute 'group'
我尝试通过以下操作进行调试:print(re.search(r'time=(\d.\d*)',line))
示例输出为:<re.Match object; span=(85, 95), match='time=0.032'>
这表明re.search确实在寻找匹配项。我不明白的是为什么我不能调用.group()方法来输出所需的组。
非常感谢您的帮助。
答案 0 :(得分:1)
也许只是尝试打印不匹配的行。例如:
with open("ping_test.txt",'r') as fp:
for line in fp:
res = re.search(r'time=(\d.\d*)',line.strip())
if res:
print(res.group(1))
else:
print('Error while parsing:', line)