35 lines
933 B
Python
35 lines
933 B
Python
import argparse
|
|
import os
|
|
from time import sleep
|
|
|
|
def main():
|
|
args = get_args()
|
|
buckets = {}
|
|
with open(args.p, "r") as f:
|
|
f.seek(0, os.SEEK_END)
|
|
while True:
|
|
line = f.readline().strip()
|
|
if not line:
|
|
sleep(0.25)
|
|
continue
|
|
key = line.strip("/").split()[0]
|
|
if not key in buckets:
|
|
buckets[key] = False
|
|
buckets[key] = False if line[0] == "/" else float(line.split()[-1])
|
|
result = sorted([
|
|
(int(100*buckets[k]), k) for k in buckets if buckets[k]
|
|
], reverse=True)
|
|
print("[",
|
|
" ".join([
|
|
"{}={:2}".format(i[1], i[0]) for i in result
|
|
]),
|
|
"]")
|
|
|
|
def get_args():
|
|
ap = argparse.ArgumentParser()
|
|
ap.add_argument("-p", type=str, help="path to write out to", default="/tmp/cbappend.both.txt")
|
|
return ap.parse_args()
|
|
|
|
if __name__ == "__main__":
|
|
main()
|