1 #!/usr/bin/env python 2 3 from simplex import * 4 import sys, time 5 6 class IndexWriter: 7 8 "A tab-delimited file writer." 9 10 def __init__(self, f): 11 self.f = f 12 13 def append(self, entry): 14 key, pos = entry 15 entry = key + [pos] 16 self.f.write("\t".join(map(str, entry)) + "\n") 17 18 try: 19 filename, numeric, interval, index_filename = sys.argv[1:5] 20 fields = map(int, sys.argv[5:]) 21 numeric = numeric == "true" 22 except (IndexError, ValueError): 23 print >>sys.stderr, "Usage: %s <filename> <numeric> <interval> <index> <field>..." % sys.argv[0] 24 sys.exit(1) 25 26 f = open(filename) 27 fi = open(index_filename, "w") 28 accessor = DelimitedRecord(fields, numeric=numeric) 29 writer = IndexWriter(fi) 30 31 try: 32 t = time.time() 33 make_index(f, accessor.get_key, int(interval), writer) 34 print "Indexed in %s seconds." % (time.time() - t) 35 36 finally: 37 f.close() 38 fi.close() 39 40 # vim: tabstop=4 expandtab shiftwidth=4