我在testing
中有一个名为/home/hiperbolt
的文件,其中有一行说明:
nameserver 127.89.87.3
我想要一段代码来查找以nameserver
开头的行并用
nameserver 8.8.8.8
我的代码目前发生的事情是它只替换名称服务器部分,因此它变为:
nameserver 8.8.8.8 127.89.87.3
而不是
nameserver 8.8.8.8
答案 0 :(得分:3)
如果您愿意,可以在没有正则表达式的情况下执行此操作。
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))
答案 1 :(得分: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'