Найти - Пользователи
Полная версия: Проблема с записью строк в новый файл
Начало » Python для новичков » Проблема с записью строк в новый файл
1
aCL
Есть файл формата .txt, содержащий какое-то количество строк формата: “7903XXXXXXX Отключение Вашего номера ожидается дд.мм.гггг. Просим срочно погасить задолженность *sum* руб. Тел. для справок: (495)xxx-xx-xx или yyyy с мобильного.” Между некоторыми строками есть строки-разделители, формата “=== Диллер NN ===”. Задача: У строк, располагающихся между двумя разделителями, изменить окончание после слов “Тел. для справок:” и переписать в новый файл. Пользуюсь Python'ом пару дней, поэтому не судите строго.
Ввожу следующий код:

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 - всё ок. Не хотелось бы в дальнейшем с этим сталкиваться…
В чем фишка?
dimy44
код в тэги обверните- видете, вон даже срез от a до b парсер съел…
dimy44
Наверно всё-же
...in base[a+1:b]:
вам же не нужно первый разделитель тоже править?
Master_Sergius
поставьте дебаггер и проверьте значения a, b, возможно где прикол из-за кириллицы
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB