[英]Search for a string in a line and replace the entire line with another string
我有一個名為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
如果需要,您可以不使用正則表達式。
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))
您可以僅在文件的文本內容上使用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'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.