处理循环输入后输出,看代码注释。
import sys
import re
from collections import defaultdict
dic = defaultdict(int)#创建默认字典,默认值为整数0
for s in sys.stdin:#循环输入字符串
s = re.split(r'[\s\\]',s.strip())#利用正则分割当前字符串
if len(s[-2])>16:#如果文件名大于16位字符,则只保留最后16位字符
s[-2]=s[-2][-16:]
s = ' '.join(s[-2:])#文件名、错误行号合并
dic[s] += 1#存储到字典中
if len(dic)>8:#如果错误信息大于8条,则只输出最后8条
for k in list(dic.keys())[-8:]:
print(f'{k} {dic[k]}')
else:#错误信息小雨8条,全部输出
for k in dic.keys():
print(f'{k} {dic[k]}')



京公网安备 11010502036488号