2008-10-25 55 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的。