Ну как-то так, если правильно понял что нужно
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')]
#end sample data
input_filename = os.path.join(template, 'trains_way.mis')
output_filename = os.path.join(template, 'mds.mis')
trains_dict = {k: v for k, _, v in all_trains}
in_seq = False
with open(input_filename) as inf:
with open(output_filename, 'w') as outf:
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)
PS: Бесит, что форматер кода на форуме вырезает пустые стороки, они вообще-то смысл выделяют