Форум сайта python.su
568
Sherkhan
на эту строку ругается
Sherkhan
Python 2.4

Офлайн
72
SherkhanК нам сегодня приходил некро-некро-некро-фил. Блин, 2.4, его же еще найти где-то надо было :)
trains_dict = {k: v for k, _, v in all_trains}
на эту строку ругается (неверный синтаксис)
Python 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()
Офлайн
0
Дело в том что продукт старый, написано около 6 тысяч строк кода на этой версии.
И переделывать на более свежую никто не будет. Проект не коммерческий. Я слегка модифицирую код на общественных началах.
ЗЫ: Спасибо, пробую.
Отредактировано Sherkhan (Июнь 17, 2015 10:08:30)
Офлайн
0
Сработало. Спасибо!
Есть ещё мааааленькая просьба!
Объясните, пожалуйста, почему в моём коде строки в выходном файле шли в разнобой, а в Вашем упорядоченно!???
Офлайн
568
Вы думаете PooH разбирался в вашем коде? Ему проще было с нуля переписать.
Офлайн
0
Хм. Ну может хоть предположения есть? Не магия же ж?
Я конечно, попытаюсь понять сам. Но с подсказкой было б быстрее))
Отредактировано Sherkhan (Июнь 17, 2015 11:18:21)
Офлайн
568
Sherkhan
Вы лучше попытайтесь понять, почему PooH написал вот это
ЗЫ: сначала пытался прокомментировать построчно все косяки в вашем коде, но проще будет показать как надо
Офлайн
72
SherkhanЧестно говоря, особо не разбирался, ваш код сразу вызвал резкое желание переписать :)
Объясните, пожалуйста, почему в моём коде строки в выходном файле шли в разнобой, а в Вашем упорядоченно!???
Офлайн
0
Спасибо!
Офлайн
0
Словарь это неупорядоченная коллекция произвольных объектов, поэтому и данные записываются в произвольном порядке.
Вот если бы вы записывали список или кортеж тогда все бы записывалось в строгом порядке.
Отредактировано iskander (Июнь 24, 2015 11:50:00)
Офлайн