0

我想用 python 编辑文件(dhcpd.conf、dns 文件)。我正在寻找任何选择,我找到了 bicop 库。我尝试这样做:

from bicop import parse
parse("/home/tigov/dhcp/dhcpd.conf")

我得到了:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.6/dist-packages/bicop/config.py", line 83, in parse
    return _Parse(tokenizer, dictclass=dictclass)
  File "/usr/local/lib/python2.6/dist-packages/bicop/config.py", line 141, in _Parse
    raise ParseError, (input.infile, input.lineno, "Unexpected end of file")
bicop.config.ParseError: None[1]: Unexpected end of file

任何想法我必须做什么,或任何“bicop 如何”?或者也许另一个图书馆可以做到这一点?(iscpy 库不适合我)感谢您的帮助,对不起,我的英语很弱。

4

3 回答 3

0

看起来 bicop 的示例不起作用。Parse 只接受字符串输入。尝试这个:

from bicop import parse
parse(open("/home/tigov/dhcp/dhcpd.conf").read())
于 2012-07-10T16:16:01.423 回答
0

似乎这个答案在这里很有帮助。bicop 似乎不适用于解析更复杂的 ISC 配置文件,但iscpy似乎

# Here is the file that I'm parsing (which bicop won't parse)
#
# zone "example.com" IN {
#   type master;
#   file "/var/named/example.com";
#   allow-update { none; };
# };

>>> import iscpy
>>> iscpy.ParseISCString(open('./named.conf').read())
{'zone "example.com" IN': {'allow-update': {'none': True},
  'file': '"/var/named/example.com"',
  'type': 'master'}}
于 2013-05-29T17:43:10.583 回答
0

如果您想以一种不错的方式修改 ISC 文件、保留注释、适应现有格式等,confctl 实用程序可能是一个不错的选择:https ://github.com/trasz/confctl/

于 2014-07-29T19:58:07.550 回答