Ввожу следующий код:
base=open('sms.txt').readlines() out21=open('out21.txt','w') a=base.index("=== Диллер NN ===\n") b=base.index("=== Диллер KKK ===\n") for line in base[a:b]: line1=line[:-36] + '8800nnnnnnn доб. kkk.\n' out21.write(line1)
Количество строк в диапазоне от a до b = 116. Если пользоваться print'ом, то всё выводит корректно - ровно 116 строк. Если производить запись в файл (неважно, write'ом или print'ом), то записывается только 113 строк. Если к b прибавить любое число 1<n<35 - всё равно строк в файле будет 113. Если прибавить n>35, то строк будет b+n. При этом при выводе на экран количество строк всегда будет корректное. Если записывать в файл исходные строки (line1), а исходные (line) из того же диапазона, то ситуация такая же, но количество строк - 103.
У строк, которые не записываются в файл, отличается только sum.
Подскажите, в чем проблема, будьте добры. А то всю голову себе уже поломал.
Заранее благодарен.
UPD: поправил код.
Выяснилось, что работает некорректно, только если запускать из IDLE'а. Если кликом по файлу *.py - всё ок. Не хотелось бы в дальнейшем с этим сталкиваться…
В чем фишка?