Как заменить сегмент текста, который является динамическим в разных файлах? - PullRequest
1 голос
/ 11 октября 2019

Вот мой код Python:

with open('input.txt', 'r') as file:
filedata = file.read()

filedata = filedata.replace("""section a {
sub1{ Dynamic Content 1}   
sub2{ Dynamic Content 2}      
sub3{ Dynamic Content 3}

 };""", """section a {
 sub1{ Dynamic Content 1}   
 sub2{ This is replacement text }     
 sub3{ Dynamic Content 3} 
 };""")

with open('input.txt', 'w') as file:
file.write(filedata)

файл input.txt:

section a {
sub1{ Dynamic Content 1}  
sub2{ Dynamic Content 2}      
sub3{ Dynamic Content 3}

};


section b {
sub1{ Dynamic Content 4}   
sub2{ Dynamic Content 5}
sub3{ Dynamic Content 6}

};

У меня есть еще несколько файлов, таких как input.txt в том же формате. т.е.

  1. Раздел a и раздел b являются уникальными, статичными и неповторяющимися в данном файле.
  2. sub1, sub2, sub3 являются статическими и повторяющимися вданный файл.
  3. содержимое в sub1, sub2, sub3 зависит от типа input.txt файла.

Я хочу заменить содержимоев разделе a-sub2 с "This is replacement text" независимо от динамического содержимого.

Сценарий выше работает, если я знаю динамическое содержимое.

1 Ответ

0 голосов
/ 11 октября 2019

Попробуйте:

import re

def replaceText():
    with open('input.txt') as file:
        filedata=file.read()
        newText=re.sub(r'(section a.*?sub2)({.*?})', r'\1{This is replacement text}', filedata, flags=re.DOTALL)
    with open('input.txt', 'w') as outfile:
        outfile.write(newText)

replaceText()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...