Image

Imagejezuz_chrizt wrote in Imageru_python 😊calm

Category:

Ошибка в поиске подстроки :( (РЕШЕНО)

Добрый день!

Голова уже сутра не варит, после бессонной ночи, помогите, пожалуйста. Не пойму..

Вот этот код

# -*- coding: cp1251 -*-
import random

f = open("UK_0.txt", 'r') # открываем файл с очищенным текстом
inp = f.read() # считываем текст в строковую переменную
f.close() # закрываем файл

offset_min = 250 # минимум знаков в куске будущего дескрипшена
offset_max = 500 # максимум знаков в куске будущего дескрипшена
desc_count = 50

def get_desc(inp):
    global offset_min, offset_max
    offset_rand = random.randrange(offset_min, offset_max) # выбираем случайное число между минимумом и максимумом - аналог в php: $offset_rand = rand($offset_min, $offset_max); ???
    desc_end = inp.index('. ', offset_rand)+1 # конец первой строки до точки с пробелом включительно
    print desc_end # отладка: позиция первого точкопробела
    description = inp[0:desc_end] # то, что идёт в дескрипшен: готовый кусок с точкопробелом
    x = str.strip(inp[desc_end:]) # остаток текста без дескрипшена
    return {"description": description, "ost": x} # результатом будет возвращен словарь: ("description": дескрипшен, "ost": остаток)


file_num = 0
d_count = 0

while len(inp) >= offset_max:
    if d_count < desc_count:
        #  description
        res = get_desc(inp)
        description = res['description']
        inp = res['ost']
        print "Кусок номер", d_count, ":", description
        d_count += 1
else:
    d_count = 0
    file_num += 1



Выдаёт в процессе неприятную ошибку с вылетом:

----------------------------вырезано: цитата-----------------------

.....
Кусок номер 11 : Эти ключевые слова легко индексируются и обнаруживаются, что позволяет создавать глобальные каталоги «желтых» и «белых» страниц на основе DNS. И наконец, .tel использует данные местоположения или LOC для публикации информации о географическом местоположении. Благодаря этому частные лица и компании могут указать свое точное местоположение. Преимущества публикации данных LOC в реальном времени будут увеличиваться по мере возникновения большего количества локальных услуг в ближайшие годы.

Traceback (most recent call last):
  File "D:\Контент\2.py", line 28, in <module>
    res = get_desc(inp)
  File "D:\Контент\2.py", line 15, in get_desc
    desc_end = inp.index('. ', offset_rand)+1 # конец первой строки до точки с пробелом включительно
ValueError: substring not found
-------------------------конец цитаты---------------------

Файл из примера можно скачать в ознакомительных целях ПО ССЫЛКЕ.

Подскажите, пожалуйста, что не так и как сделать, чтобы скрипт отрабатывал до конца?