def write_stops(input_file_name): stops_file = open('stops.txt', 'w') writer = UnicodeWriter(stops_file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL) writer.writerow(( u'stop_id', u'stop_name', u'stop_lat', u'stop_lon' )) f = codecs.open(input_file_name, encoding='latin-1') for line in f: if line[0] == '%': continue values = line.split() id = values[0] lat = values[1].replace(',', '.') lon = values[2].replace(',', '.') #name = '"' + ' '.join(values[3:]) +'"' name = ' '.join(values[3:]) writer.writerow(( id, name, lon, lat )) # upside down, but it works stops_file.close() try: zip_file = ZipFile(output_file_name, 'a') zip_file.write('stops.txt') finally: zip_file.close() os.remove('stops.txt')
def write_agency(): agency_file = open('agency.txt', 'w') writer = UnicodeWriter(agency_file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL) writer.writerow(( u'agency_id', u'agency_name', u'agency_url', u'agency_timezone' )) writer.writerow(( agency_id, u'SomeAgency', u'http://www.example.com', u'Europe/Berlin' )) agency_file.close() try: zip_file = ZipFile(output_file_name, 'a') zip_file.write('agency.txt') finally: zip_file.close() os.remove('agency.txt')
def write_routes_tripes_stop_times(input_file_names): routes = [] trips = [] stop_times = [] for f in input_file_names: print f r, t, st = get_routes_tripes_stop_times(f) routes.extend(r) trips.extend(t) stop_times.extend(st) routes = set(routes) routes_file = open('routes.txt', 'w') trips_file = open('trips.txt', 'w') stop_times_file = open('stop_times.txt', 'w') routes_writer = UnicodeWriter(routes_file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL) trips_writer = writer = UnicodeWriter(trips_file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL) stop_times_writer = UnicodeWriter(stop_times_file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL) routes_writer.writerow(( u'route_id', u'agency_id', u'route_short_name', u'route_long_name', u'route_type' )) trips_writer.writerow(( u'route_id', u'service_id', u'trip_id' )) stop_times_writer.writerow(( u'trip_id', u'arrival_time', u'departure_time', u'stop_id', u'stop_sequence' )) routes_writer.writerows( routes ) trips_writer.writerows( trips ) stop_times_writer.writerows( stop_times ) routes_file.close() trips_file.close() stop_times_file.close() try: zip_file = ZipFile(output_file_name, 'a') zip_file.write('routes.txt') zip_file.write('trips.txt') zip_file.write('stop_times.txt') finally: zip_file.close() os.remove('routes.txt') os.remove('trips.txt') os.remove('stop_times.txt')
def write_stops(input_file_name): stops_file = open('stops.txt', 'w') writer = UnicodeWriter(stops_file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL) writer.writerow((u'stop_id', u'stop_name', u'stop_lat', u'stop_lon')) f = codecs.open(input_file_name, encoding='latin-1') for line in f: if line[0] == '%': continue values = line.split() id = values[0] lat = values[1].replace(',', '.') lon = values[2].replace(',', '.') #name = '"' + ' '.join(values[3:]) +'"' name = ' '.join(values[3:]) writer.writerow((id, name, lon, lat)) # upside down, but it works stops_file.close() try: zip_file = ZipFile(output_file_name, 'a') zip_file.write('stops.txt') finally: zip_file.close() os.remove('stops.txt')
def write_agency(): agency_file = open('agency.txt', 'w') writer = UnicodeWriter(agency_file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL) writer.writerow( (u'agency_id', u'agency_name', u'agency_url', u'agency_timezone')) writer.writerow((agency_id, u'SomeAgency', u'http://www.example.com', u'Europe/Berlin')) agency_file.close() try: zip_file = ZipFile(output_file_name, 'a') zip_file.write('agency.txt') finally: zip_file.close() os.remove('agency.txt')
def write_calendar_calendar_dates(bitfield_file_name, eckdaten_file_name): calendar_file = open('calendar.txt', 'w') calendar_dates_file = open('calendar_dates.txt', 'w') f = codecs.open(eckdaten_file_name, encoding='latin-1') lines = [l for l in f if l[0] != '%'] start_date = lines[0][6:10] + lines[0][3:5] + lines[0][0:2] end_date = lines[1][6:10] + lines[1][3:5] + lines[1][0:2] c_writer = UnicodeWriter(calendar_file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL) c_writer.writerow( (u'service_id', u'monday', u'tuesday', u'wednesday', u'thursday', u'friday', u'saturday', u'sunday', u'start_date', u'end_date')) cd_writer = UnicodeWriter(calendar_dates_file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL) cd_writer.writerow((u'service_id', u'date', u'exception_type')) f = codecs.open(bitfield_file_name, encoding='latin-1') for line in f: date = start_date id, hex_field = line.split()[:2] bool_list = hex_to_bool_list(hex_field) if bool_list.count(True) > 25: exception_type = 2 c_writer.writerow((id, 1, 1, 1, 1, 1, 1, 1, start_date, end_date)) else: exception_type = 1 c_writer.writerow((id, 0, 0, 0, 0, 0, 0, 0, start_date, end_date)) for bool in hex_to_bool_list(hex_field): if (bool == False and exception_type == 2) or (bool == True and exception_type == 1): cd_writer.writerow((id, date, exception_type)) date = increment_date_string(date) calendar_file.close() calendar_dates_file.close() try: zip_file = ZipFile(output_file_name, 'a') zip_file.write('calendar.txt') zip_file.write('calendar_dates.txt') finally: zip_file.close() os.remove('calendar.txt') os.remove('calendar_dates.txt')
def write_routes_tripes_stop_times(input_file_names): routes = [] trips = [] stop_times = [] for f in input_file_names: print f r, t, st = get_routes_tripes_stop_times(f) routes.extend(r) trips.extend(t) stop_times.extend(st) routes = set(routes) routes_file = open('routes.txt', 'w') trips_file = open('trips.txt', 'w') stop_times_file = open('stop_times.txt', 'w') routes_writer = UnicodeWriter(routes_file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL) trips_writer = writer = UnicodeWriter(trips_file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL) stop_times_writer = UnicodeWriter(stop_times_file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL) routes_writer.writerow((u'route_id', u'agency_id', u'route_short_name', u'route_long_name', u'route_type')) trips_writer.writerow((u'route_id', u'service_id', u'trip_id')) stop_times_writer.writerow((u'trip_id', u'arrival_time', u'departure_time', u'stop_id', u'stop_sequence')) routes_writer.writerows(routes) trips_writer.writerows(trips) stop_times_writer.writerows(stop_times) routes_file.close() trips_file.close() stop_times_file.close() try: zip_file = ZipFile(output_file_name, 'a') zip_file.write('routes.txt') zip_file.write('trips.txt') zip_file.write('stop_times.txt') finally: zip_file.close() os.remove('routes.txt') os.remove('trips.txt') os.remove('stop_times.txt')
def write_calendar_calendar_dates(bitfield_file_name, eckdaten_file_name): calendar_file = open('calendar.txt', 'w') calendar_dates_file = open('calendar_dates.txt', 'w') f = codecs.open(eckdaten_file_name, encoding='latin-1') lines = [ l for l in f if l[0] != '%' ] start_date = lines[0][6:10] + lines[0][3:5] + lines[0][0:2] end_date = lines[1][6:10] + lines[1][3:5] + lines[1][0:2] c_writer = UnicodeWriter(calendar_file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL) c_writer.writerow(( u'service_id', u'monday', u'tuesday', u'wednesday', u'thursday', u'friday', u'saturday', u'sunday', u'start_date', u'end_date' )) cd_writer = UnicodeWriter(calendar_dates_file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL) cd_writer.writerow(( u'service_id', u'date', u'exception_type' )) f = codecs.open(bitfield_file_name, encoding='latin-1') for line in f: date = start_date id, hex_field = line.split()[:2] bool_list = hex_to_bool_list(hex_field) if bool_list.count(True) > 25: exception_type = 2 c_writer.writerow(( id, 1, 1, 1, 1, 1, 1, 1, start_date, end_date )) else: exception_type = 1 c_writer.writerow(( id, 0, 0, 0, 0, 0, 0, 0, start_date, end_date )) for bool in hex_to_bool_list(hex_field): if (bool == False and exception_type == 2) or (bool == True and exception_type == 1): cd_writer.writerow(( id, date, exception_type )) date = increment_date_string(date) calendar_file.close() calendar_dates_file.close() try: zip_file = ZipFile(output_file_name, 'a') zip_file.write('calendar.txt') zip_file.write('calendar_dates.txt') finally: zip_file.close() os.remove('calendar.txt') os.remove('calendar_dates.txt')