在一行中搜索一个字符串,并用另一个字符串替换整行

2024-05-13 08:34:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个名为testing的文件存在于/home/hiperbolt中,它有一行代码:

nameserver 127.89.87.3

我需要一段代码来查找以nameserver开头的行,并用

nameserver 8.8.8.8

我的代码目前只替换了nameserver部分,因此变成:

nameserver 8.8.8.8 127.89.87.3

而不是

nameserver 8.8.8.8

Tags: 文件代码hometestingnameserverhiperbolt
2条回答

只需对文件的文本内容使用re.sub(),然后将替换的文本写回文件。你知道吗

In [30]: filedata
Out[30]: 'nameserver 127.89.87.3\nsearch example.com\n'

In [31]: re.sub(r'nameserver\s+.*', 'nameserver 8.8.8.8', filedata)
Out[31]: 'nameserver 8.8.8.8\nsearch example.com\n'

如果你想的话,你可以不用正则表达式。你知道吗

with open('/home/hiperbolt', 'r') as f:
    lines = []
    for line in f:
        if line.startswith('nameserver'):
            lines.append('nameserver 8.8.8.8')
        else:
            lines.append(line)

with open('/home/hiperbolt', 'w') as f:
    f.write('\n'.join(lines))

相关问题 更多 >