58 lines
1.4 KiB
Python
Executable file
58 lines
1.4 KiB
Python
Executable file
#!/usr/bin/env python
|
|
import sys
|
|
import os
|
|
|
|
libdir = os.path.join(os.path.dirname(os.path.realpath(__file__)), '../lib')
|
|
sys.path.append(libdir)
|
|
|
|
def main(fname):
|
|
with open(fname, 'rt') as f:
|
|
text = f.read()
|
|
|
|
cardstats = text.split('\n')
|
|
nonempty = 0
|
|
name_avg = 0
|
|
name_dupes = 0
|
|
card_avg = 0
|
|
card_dupes = 0
|
|
|
|
for c in cardstats:
|
|
fields = c.split('|')
|
|
if len(fields) < 4:
|
|
continue
|
|
nonempty += 1
|
|
idx = int(fields[0])
|
|
name = str(fields[1])
|
|
ndist = float(fields[2])
|
|
cdist = float(fields[3])
|
|
|
|
name_avg += ndist
|
|
if ndist == 1.0:
|
|
name_dupes += 1
|
|
card_avg += cdist
|
|
if cdist == 1.0:
|
|
card_dupes += 1
|
|
|
|
name_avg = name_avg / float(nonempty)
|
|
card_avg = card_avg / float(nonempty)
|
|
|
|
print(str(nonempty) + ' cards')
|
|
print('-- names --')
|
|
print('avg distance: ' + str(name_avg))
|
|
print('num duplicates: ' + str(name_dupes))
|
|
print('-- cards --')
|
|
print('avg distance: ' + str(card_avg))
|
|
print('num duplicates: ' + str(card_dupes))
|
|
print('----')
|
|
|
|
if __name__ == '__main__':
|
|
|
|
import argparse
|
|
parser = argparse.ArgumentParser()
|
|
|
|
parser.add_argument('infile', #nargs='?'. default=None,
|
|
help='data file to process')
|
|
|
|
args = parser.parse_args()
|
|
main(args.infile)
|
|
exit(0)
|