替换文件中的字符

时间:2014-06-04 14:02:09

标签: python regex string python-2.7

我决定尝试编写一个简单的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')

我也尝试过list:

mx_before = list('                IN      MX')

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

而且这两个都没有。

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

p.s。:我注意到空间字符的数量不固定

2 个答案:

答案 0 :(得分:1)

str="                IN      Mx"

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

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

答案 1 :(得分:1)

试试这个:

import re

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

此功能获取第一个空格并将其替换为' @'