Python Fabric不会评论行首

时间:2015-06-13 14:00:39

标签: python regex comments stdout fabric

试图在python结构中注释掉文本文件中的一行。正则表达式适用于任何没有ip1或ip2的@符号。模式搜索得很好并找到该行,除了打印"#+ line"它打印"#@#bad_Ip_here"。所以它应该是:

#*.info;mail.none;stuff.none;cron.none                @bad_ip

但打印

*.info;mail.none;stuff.none;cron.none                #@#@bad_ip

只是两次打印注释行,这很好。我不知道错误或改变了什么。我试图强迫它插入位置0

line = line[:0] + "#" + line[0:]

但这也没有奏效。

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()

感谢

0 个答案:

没有答案