命名:log_extractor.py
or download_stats_extractor.py
# coding:utf-8
#!/usr/bin/python3
def filter_line(line,contains,contains_not):
if all(c in line for c in contains) and not any(n in line for n in contains_not):
if int(line.split()[8]) == 200 and int(line.split()[9]) > 10000: # Additional rules added
return line.strip()
def count_installs_and_upgrades(line):
elements = line.strip().split(' ')
filename = elements[6]
if 'electron-builder' in line:
return {'file': filename, 'installs': 0, 'upgrades': 1}
else:
return {'file': filename, 'installs': 1, 'upgrades': 0}
file = 'test.log'
contains = ['GET','download']
contains_not = ['xx']
counts = {}
with open(file,'r') as f:
while True:
line = f.readline()
if not line:
break
filtered_line = filter_line(line,contains,contains_not)
if filtered_line:
#print(filtered_line)
result = count_installs_and_upgrades(line)
filename = result['file']
if filename in counts:
counts[filename]['installs'] += result['installs']
counts[filename]['upgrades'] += result['upgrades']
else:
counts[filename] = result
for file, data in counts.items():
print(file, "Installations:", data['installs'], "Upgrades:", data['upgrades'])
标签:提取,installs,contains,filename,file,upgrades,日志,line,python3
From: https://www.cnblogs.com/dewan/p/17334296.html