Как в Notepad++ найти и заменить значения в строках. Или в Python
Есть текстовый файл: userbouquet._5.tv
В нём есть много строк - одна из них пример:
#SERVICE 4097:0:1:154:521:0:0:0:0:http%3a//51.195.44.53%3a8081/tv/ostros/playlist.m3u8:Остросюжетное HD
Постоянное в этой строке только название канала: :Остросюжетное HD
Это всегда меняется: 4097:0:1:154:521:0:0:0:0:http%3a//51.195.44.53%3a8081/tv/ostros/playlist.m3u8
Постоянно присутствует этот интервал: 4097 ---- http
Нужно найти в строку в этом файле: userbouquet._5.tv:
По названию канала:
:Остросюжетное HDЯ ищу эту строку так . Найти:4097(.*?)http(.*):Остросюжетное HDМне нужно в начале строки в этом интервале
4097 ---- httpЭтот кусок строки:0:1:154:521:0:0:0:0:это всегда бывает разное. Заменить на постоянное исходное значение из другого файла:EPG.txt :0:1:267:521:0:0:0:0:
Всё остальное в найденной строке не должно изменится.
Как сделать эту замену ?
Ответы (1 шт):
Вот кусок кода который делает поиск и замену в искомых строках. Для него надо добавить чтение строк из файла - надеюсь справитесь с чтением файла (если что- напишите, тогда я укажу что дописать для чтения (записи) файла.
итак, вот сама функция:
import re
def TestAndRemakeString(replasement, strsource):
res = ''
if re.search(r'.*4097.*http.*:Остросюжетное HD', strsource):
ind_2 = strsource.index('http')
ind_1 = strsource.index('4097')
res = strsource[:ind_1 + 4:] + replasement + strsource[ind_2::]
return res
Вот как пользоваться этой функцией:
# str_lines - список строк для анализа и замены. формируем его из файла.
str_lines = ['#SERVICE 4097:0:1:154:521:0:0:0:0:http%3a//51.195.44.53%3a8081/tv/ostros/playlist.m3u8:Остросюжетное HD']
out_lines = []
for line in str_lines:
result = TestAndRemakeString('-ЗДЕСЬ_УКАЗЫВАЕМ_НА_ЧТО_ЗАМЕНЯТЬ_БУДЕМ-', line)
if result:
# в result - строка уже с изменениями. далее делаем то, что нужно сделать с этой строкой
print(result)
# например записываем в новый список:
out_lines.append(result)
else:
# значит в line строка не содержащая искомой фразы здесь
print('Строка без изменений. Нет искомой фразы.')
# например записываем в новый список:
out_lines.append(line)
Собственно далее уже вы решаете что делать с результатом.