Python: поиск фрагмента строки в файле и замена всей строки, содержащей его
Есть большой файл с параметрами вида:
IP Address = XX.XX.XX.XX
System Function Allowed=1
Operating mode=3
Auth mode=0
и так далее. Названия и части названий встречаются не один раз, поэтому configparser работать не хочет. Нужно заменить некоторые параметры, так понимаю, что самый простой способ - поиск в файле по ключевому тексту, например, Operating mode, и замена всей строки, содержащей это словосочетание, на, например, заданную Operating mode=0. Однако не хватает знаний, как это реализовать.
Пока есть вот это, что успешно меняет строку на строку.
import re
o = open('out.ini','w')
data = open('inp.ini').read()
o = open('out.ini','w')
o.write( re.sub('Software Version=0','Software Version=1',data) )
o.close()
Проблема в том, что значения могут меняться и просто подставить полную строку не всегда возможно. Как сделать поиск по фрагменту строки? НЕ по слову, т.к. слова в большинстве случаев будет недостаточно.
Ответы (1 шт):
Так пойдет? Можно добавить свои замены
import re
o = open('out.ini','w')
data = open('inp.ini').read()
data = data.split('\n')
for i in range(len(data)):
stri = data[i]
if stri.startswith('Software Version='):
data[i] = 'Software Version=1'
o = open('out.ini','w')
o.write( '\n'.join(data))
o.close()