Just trying to comment out a line in a text file in python fabric. Regex is for any @ sign that doesn't have ip1 or ip2 following. The pattern searches just fine and finds the line, except instead of printing "# + line" it prints "#@#@bad_Ip_here". So it should be :
#*.info;mail.none;stuff.none;cron.none                @bad_ip
but it prints
*.info;mail.none;stuff.none;cron.none                #@#@bad_ip
It was just printing the commented line twice, which is fine. I don't know what is wrong or what changed. I tried forcing it to insert at position 0 with
line = line[:0] + "#" + line[0:]
but that didn't work either.
def addcomments():
    ip1 = '10.31.xx.xxx'
    ip2 = '10.30.xx.xx'
    host = env.host_string
    conf = open('/home/myuser/verify_yslog_conf/%s/hi.txt' % host, 'r')
    f = conf.read()
    conf.close()
    comment = open('/home/myuser/verify_yslog_conf/%s/hi.txt' % host, 'w')
    for line in f:
        if re.search(r'(@(?!({0}|{1})))'.format(ip1, ip2), line):
            line = "#" + line
            comment.write(line) 
        comment.write(line)
    comment.close()
thanks