view bin/airport-lookup @ 12092:ceb43c4d37de draft

<fizzie> ` for w in benvenuto bienvenido bienvenue bonvenon tervetuloa v\xc3\xa4lkommen velkomin velkommen welcome welkom wercome willkommen \xd0\xb4\xd0\xbe\xd0\xb1\xd1\x80\xd0\xbe-\xd0\xbf\xd0\xbe\xd0\xb6\xd0\xb0\xd0\xbb\xd0\xbe\xd0\xb2\xd0\xb0\xd1\x82\xd1\x8c; do sed -i -e \'2s|^|my $bin = $ENV{"HACKENV"}."/bin"; |;s|bin/[@?]|$&|g\' /hackenv/bin/$w; done
author HackEso <hackeso@esolangs.org>
date Sat, 16 Nov 2019 22:19:36 +0000
parents c09e4dd3afd7
children 204fe444dca2
line wrap: on
line source

#! /usr/bin/env python

import csv
import sys

if len(sys.argv) < 3: sys.stderr.write('usage: airport-lookup any|name|iata|icao key\n'); sys.exit(1)
kind, q = sys.argv[1], ' '.join(sys.argv[2:])

fieldnames = dict(name=1, iata=4, icao=5)
if kind == 'any': fields = [1, 4, 5]
elif kind in fieldnames: fields = [fieldnames[kind]]
else: sys.stderr.write('unknown search type: %s\n' % kind); sys.exit(1)

def f(s): return s if s and s != '\N' else '?'

with open('share/airports.dat', 'rb') as datafile:
  for row in csv.reader(datafile):
    for fi in fields:
      if q.lower() in row[fi].lower():
        print '%s (%s, %s)' % (row[1], f(row[4]), f(row[5]))