使用python脚本编辑dhcp.conf

时间:2015-03-10 21:09:38

标签: python

我已经在这个网站上拖了很多年,总是找到我的答案,但今天我没有成功。我的任务是编写一个python脚本,可以从dhcp.conf文件中搜索,添加和删除主机。即。

host testnode{
    option host-name "testnode";
    option root-path "0.0.0.0:/foo/bar/foobar/testnode";
    option subnet-mask 0.0.0.0;
    option routers 0.0.0.0;
    hardware ethernet 00:00:00:00:00:00;
    fixed-address 0.0.0.0;

}

以上述格式。我可以使用re.search(str,line)搜索dhcp.conf文件来查找testnode,但是如何让我的代码打印出从testnode到结尾“}”的每一行?

这是我到目前为止的代码。

   #!/usr/bin/env python
    import re
    infile = open('/etc/dhcp/dhcpd.conf', 'r')
    str = raw_input('Enter hostname to search: ');
    def search_host( str ):
        for line in infile:
                if re.search(str, line):
                    print line
                    while (line != '^}'):
                       line = next(infile)
                       print line
search_host(str);

re.search将在testnode停止,然后代码打印出dhcp.conf文件中的每一行,直到它结束。如何在主机条目结束时点击“}”时告诉while循环停止。

由于

1 个答案:

答案 0 :(得分:1)

下面的代码会在您第一次匹配后打印所有内容,并在遇到“'”时突然显示。无需使用一段时间并干扰文件对象的迭代。

infile = '/etc/dhcp/dhcpd.conf'
str = raw_input('Enter hostname to search: ');
def search_host( str, infile):
    start = False
    with open(infile, 'r') as f:
        for line in f:
            if re.search(str, line):
                start = True
            if start:
                print line
                if re.search('}', line):
                    break
search_host(str, infile);