Mercurial > repo
comparison bin/airport-lookup @ 9572:98c473a71c18
<fizzie> ` mv airport bin/airport-lookup; mkx \'bin/airport//airport-lookup any "$*"\'; mkx \'bin/icao//airport-lookup icao "$*"\'; mkx \'bin/iata//airport-lookup iata "$*"\'
author | HackBot |
---|---|
date | Sun, 30 Oct 2016 23:43:47 +0000 |
parents | airport@a4b3b4ec7681 |
children | c09e4dd3afd7 |
comparison
equal
deleted
inserted
replaced
9571:a4b3b4ec7681 | 9572:98c473a71c18 |
---|---|
1 #! /usr/bin/env python | |
2 | |
3 import csv | |
4 import sys | |
5 | |
6 if len(sys.argv) < 3: sys.stderr.write('usage: airport any|name|iata|icao key\n'); sys.exit(1) | |
7 kind, q = sys.argv[1], ' '.join(sys.argv[2:]) | |
8 | |
9 fieldnames = dict(name=1, iata=4, icao=5) | |
10 if kind == 'any': fields = [1, 4, 5] | |
11 elif kind in fieldnames: fields = [fieldnames[kind]] | |
12 else: sys.stderr.write('unknown search type: %s\n' % kind); sys.exit(1) | |
13 | |
14 def f(s): return s if s and s != '\N' else '?' | |
15 | |
16 with open('share/airports.dat', 'rb') as datafile: | |
17 for row in csv.reader(datafile): | |
18 for fi in fields: | |
19 if q.lower() in row[fi].lower(): | |
20 print '%s (%s, %s)' % (row[1], f(row[4]), f(row[5])) |