在文件中替换字符

1 投票
2 回答
806 浏览
提问于 2025-04-18 08:34

我决定尝试写一个简单的Python脚本来编辑一些DNS区域文件。这里有一些行,比如:

                IN      MX    10 mail.example.com

我想把这一行中的第一个空格替换成'@',因为在所有文件中这个字符都缺失了。我试着用:

line.replace('                 IN  MX', '@                IN  MX')

但是没有成功。

with open("zone_file.zone", "rw") as file:
    for line in file:
        line.replace('                 IN  MX', '@                IN  MX')

我还尝试过用列表:

mx_before = list('                IN      MX')

for line in file:
    if line == str(mx_before):
        mx_before[0] = '@'
        "".join(mx_before)

但这也不行。

我想使用一些正则表达式来验证在'IN'字符串之前没有其他字符,但我还没弄明白该怎么做。有什么好的方法吗?(不一定是最简单的)

补充一下:我注意到空格的数量并不是固定的。

2 个回答

1

试试这个:

import re

text = ' IN MX' 
text2 = re.sub('^\s', '@', text)

这个函数会找到第一个空格,并把它替换成'@'

1
str="                IN      Mx"

for line in file:
    if str in line:
       line= "@"+line[1:]

试试这个演示:http://repl.it/Tbd

撰写回答