2008-10-25 19 views

回答

5

我无法使用bicop古典区域文件这样的:

$TTL 86400 
@ IN SOA ns1.first-ns.de. postmaster.robot.first-ns.de. (
    2006040800 ; serial 
    14400  ; refresh 
    1800   ; retry 
    604800  ; expire 
    86400)  ; minimum 

@ 

        IN NS  ns1.first-ns.de. 

我会看看dnspython

0

查看以上关于bicop的回答。

另外,Python包指数http://pypi.python.org/pypi是查找Python包的好地方。

编辑:以下可能仍然有助于某人试图找出简单的解析,但bicop显然是现有的解决方案。

如果有人已经手工修改了配置,而您又不想覆盖它,这是否意味着您希望从现有配置中插入/删除行,并保留所有注释等?这确实会阻止解析,然后重新输出配置,但这也是一个积极的 - 你不需要完全解析文件来实现你的目标。

添加一条记录,你可以尝试像

# define zone_you_care_about and line_you_wish_to_insert first, then: 
for line in bindfile.read(): 
    out.write(line + '\n') 
    if ('zone "%s" in' % zone_you_care_about) in line: 
     out.write(line_you_wish_to_insert) 

类似的代码可用于去除线一个简单的方法:

# define zone_you_care_about and relevant_text_to_remove, then: 
for line in bindfile.read(): 
    if not relevant_text_to_remove in line: 
     out.write(line + '\n') 

你可以得到尽可能你需要的简单片段这样的代码。

+0

请参阅下面有关bicop的回答。也许你应该使用谷歌(这是“在python中绑定配置文件”的第二个命中),而不是pypi的不足搜索界面:)。 – Glyph 2008-10-28 03:20:25

+0

我没有谷歌它,并设法想念它。我想我试过“绑定python解析”。我会更新我的回应。 – 2008-10-30 17:49:54

0

您可能会尝试bicop“处理ISC绑定样式配置文件的python库”。

+0

这是否支持丹尼尔斯要求保留手边修改? – 2008-10-30 17:53:11

+2

从我能告诉`bicop`不支持解析区域文件,只是BIN​​D配置文件。这个问题特别提出区域文件。 – 2014-11-05 21:44:21

1

我知道这是旧的,但只工作一个我可以找到被称为iscpy。你可以做一个easy_install。

easy_install iscpy 

然后在python:

import iscpy 
iscpy.ParseISCString(open('somefile.conf', 'r').read()) 

返回一个字典。

6

easyzone超过dnspython一个很好的层

Zoner提供了一个web界面进行编辑区域文件,并利用easyzone的。