Python 匹配后用换行符替换单词

Python 匹配后用换行符替换单词,python,Python,我使用的是python 3.6,我有一个文件如下所示: interface Ethernet94 profile users-1 ! interface Ethernet95 profile users-admin ! interface Ethernet96 profile users-reg ! 我想根据上面一行的接口号,选择替换“profile”后面的单词 因此,要将Ethernet96接口从profile user

我使用的是python 3.6,我有一个文件如下所示:

    interface Ethernet94
    profile users-1
    !
    interface Ethernet95
    profile users-admin
    !
    interface Ethernet96
    profile users-reg
    !
我想根据上面一行的接口号,选择替换“profile”后面的单词

因此,要将Ethernet96接口从
profile users reg
更改为
profile users all
,我尝试了以下方法:

#/usr/bin/env蟒蛇3
导入系统
导入文件输入
filename='/root/test'
对于fileinput.input([filename],inplace=True)中的行:
如果line.strip().startswith('interface Ethernet96\n配置文件'):
行='接口Ethernet96\n配置文件用户所有'
系统标准输出写入(行)
但这对文件没有任何影响。我找不到解决方案,因为所有的例子都显示了如何逐字替换。但是我不能基于其名称更改配置文件,因为我可以使用同一配置文件拥有多个接口


请协助

A
regex
就可以了

from pathlib import Path
import re

file = Path("file.txt")
content = file.read_text()
content = re.sub(r"(interface Ethernet96\nprofile) ([-\w]+)", r"\1 users-all", content)
file.write_text(content)

使用Ethernet96行的标记更换线路

from pathlib import Path

file = Path("file.txt")
content = file.read_text().splitlines()

row_idx = content.index("interface Ethernet96")
content[row_idx + 1] = "profile users-all"

一个
regex
就可以了

from pathlib import Path
import re

file = Path("file.txt")
content = file.read_text()
content = re.sub(r"(interface Ethernet96\nprofile) ([-\w]+)", r"\1 users-all", content)
file.write_text(content)

使用Ethernet96行的标记更换线路

from pathlib import Path

file = Path("file.txt")
content = file.read_text().splitlines()

row_idx = content.index("interface Ethernet96")
content[row_idx + 1] = "profile users-all"