История изменений
Исправление proud_anon, (текущая версия) :
Какой страшный код у тебя.
except StopIteration:
pass # файл кончился
А что касается твоей проблемы, то, КМК, что ты написал, то ты и получил:
for key in en2rus:
# Проверяем входит ли строка в ключи словаря - ключи словаря английский текст
if SrtLine in key:
# Определяем длину ключа
Lenkey = len(key)
# Определяем длину строки
LenSrtLine = len(SrtLine)
# Определяем длину переведенной строки, от которой нужно отрезать текст
y = textwrap.wrap(en2rus[key], width=LenSrtLine)
# Заменяем английский текст на перевод
ReplaceLine = ThirdLine.replace(SrtLine, y[0])
# Записываем замененный текст
out.write(ReplaceLine)
В качестве исправления на скорую руку могу предложить следующее:
# Определяем длину переведенной строки, от которой нужно отрезать текст
replacement = re.match('^.{{0,{}}}\w*\W?'.format(LenSrtLine), en2rus[key])
# Заменяем английский текст на перевод
ReplaceLine = SrtLine.replace(SrtLine, replacement)
Кроме того, вот тут:
#В последнем else
y = textwrap.wrap(en2rus[key], width=LenSrtLine)
Конечно, правильнее всего было изначально разбивать по словам, а не по символам.
Исходная версия proud_anon, :
Какой страшный код у тебя.
except StopIteration:
pass # файл кончился
А что касается твоей проблемы, то, КМК, что ты написал, то ты и получил:
for key in en2rus:
# Проверяем входит ли строка в ключи словаря - ключи словаря английский текст
if SrtLine in key:
# Определяем длину ключа
Lenkey = len(key)
# Определяем длину строки
LenSrtLine = len(SrtLine)
# Определяем длину переведенной строки, от которой нужно отрезать текст
y = textwrap.wrap(en2rus[key], width=LenSrtLine)
# Заменяем английский текст на перевод
ReplaceLine = ThirdLine.replace(SrtLine, y[0])
# Записываем замененный текст
out.write(ReplaceLine)
В качестве исправления на скорую руку могу предложить следующее:
# Определяем длину переведенной строки, от которой нужно отрезать текст
replacement = re.match('^.{{0,{}}}\w*\W?'.format(LenSrtLine), en2rus[key])
# Заменяем английский текст на перевод
ReplaceLine = SrtLine.replace(SrtLine, replacement)
Кроме того, вот тут:
#В последнем else
y = textwrap.wrap(en2rus[key], width=LenSrtLine)
Конечно, правильнее всего было изначально разбивать по словам, а не по символам.