def cve2lines(cvedirn, station_conv, llfn): railstation_fn = os.path.join(cvedirn, 'railstation_master.txt') # railstation -> 路線 - 駅名リスト # {(cve路線ID, cve路線名): ジョルダン駅名, ...} railstation_data = mk_railstation_data(railstation_fn, station_conv) # Lines instance lines = Lines() for lineID, linename, *stations_j in railstation_data: chk = lines.add_line(lineID, linename, stations_j) if type(chk) is int and chk < 0: print('railstation err: {0}: {1} {2}'.format( chk, lineID, linename)) sys.exit() # 路線リスト lines_list = lines.line_list() with open(llfn, 'w', encoding='utf-8') as f: f.write(''.join(['\t'.join(l) + '\n' for l in lines_list])) return lines
# ジョルダン -> 所定 路線対応リスト取得 1:多 # {(ジョルダン路線名, ジョルダン方面名): [(cve路線ID, cve路線名), ...], ...} line_conv = mk_line_conv(lineconv_fn) # cve -> ジョルダン 駅名対応リスト取得 多:1 # {cve駅名: ジョルダン駅名} station_conv = mk_station_conv(stalinedirec_fn) # railstation -> 路線 - 駅名リスト # {(cve路線ID, cve路線名): ジョルダン駅名, ...} railstation_data = mk_railstation_data(railstation_fn, station_conv) # Lines instance lines = Lines() for (lineID, linename), stations in railstation_data.items(): chk = lines.add_line(lineID, linename, stations) if chk < 0: print('railstation err: {0}: {1} {2}'.format( chk, lineID, linename)) sys.exit() # 運行表データを全部読み、長いデータ順に all_data = read_data_and_sort(rt_dirn) ok_data, osng_data, pas_data, err_data = [], [], [], [] vehicles = {} # 1列車ずつ for l in all_data: written = False