Как проанализировать файлы dhcpd.conf с помощью python и bicop? - PullRequest
0 голосов
/ 07 марта 2012

Я хочу редактировать файлы (dhcpd.conf, dns files) с помощью python. Я искал любой вариант, и я нашел библиотеку бикопа. Я пытаюсь сделать:

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

Есть какие-нибудь идеи, что я должен делать, или какой-нибудь "бикоп как"? Или, может быть, другая библиотека для этого? (библиотека iscpy не работает для меня) Спасибо за помощь и извините, мой английский слабый.

Ответы [ 3 ]

0 голосов
/ 29 мая 2013

Похоже, этот ответ полезен здесь. 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'}}
0 голосов
/ 29 июля 2014

Если вы хотите изменить файлы ISC приятным способом, сохранив комментарии, адаптируясь к существующему форматированию и т. Д., Утилита confctl может быть хорошим выбором: https://github.com/trasz/confctl/

0 голосов
/ 10 июля 2012

Похоже, примеры для бикопа не работают. Parse принимает только строку ввода. Попробуйте это:

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