Sherkhan
trains_dict = {k: v for k, _, v in all_trains}
на эту строку ругается (неверный синтаксис)
Python 2.4
К нам сегодня приходил некро-некро-некро-фил. Блин, 2.4, его же еще найти где-то надо было :)
Вот так должно работать под 2,4:
import os
# sample data
template = '/home/pooh/tmp/1'
all_trains = [('1_Chief', 'Trains.USSR_TovarSostav 1', '26000_Chief'),
('2_Chief', 'Trains.USSR_FuelCargo 1', '26001_Chief')]
input_filename = os.path.join(template, 'trains_way.mis')
output_filename = os.path.join(template, 'mds.mis')
trains_dict = dict(map(lambda x: (x[0], x[-1]), all_trains))
in_seq = False
inf = open(input_filename)
try:
outf = open(output_filename, 'w')
try:
for line in inf:
if line.startswith('['):
train = trains_dict.get(line.strip()[1:-6], None) # delete '[' and '_Road]' from line for key
if train:
outf.write('[%s_Road]\n' % train)
in_seq = True
else:
in_seq = False
elif in_seq:
outf.write(line)
finally:
outf.close()
finally:
inf.close()