2017-05-04 65 views
0

我有一個基本問題需要解決,我是python的新手,希望使用python3來抓取用戶的輸入並將其粘貼到多行字符串中的特定位置。我不完全確定要達到我所追求的具體位置。python3 DNS域塊腳本

我有什麼到目前爲止

new_domain = input("Ener domain you would like to block: ") 

zone = """zone {} IN {{ 
      type master; 
      file "zones/192.168.1.1.zone"; 
      allow-transfer { none; }; 
      allow-query { my-dmz; }; 
}; 
""".format(new_domain) 

當我運行的代碼

Error is "KeyError: ' none;' 

我是否需要跳脫出多行字符串的使{}有效參數放置用戶輸入?

一旦我得到輸出格式正確,我想粘貼在多個域中爲它有這個特定的輸出每個域我輸入。

因此所需的輸出將提前任何幫助

Enter domain you would like to block? test123.com 

zone "test123.com" IN {{ 
      type master; 
      file "zones/192.168.1.1.zone"; 
      allow-transfer { none; }; 
      allow-query { my-dmz; }; 
}; 

感謝。

回答

0

好了,所以之後從其他地方一些幫助,我發現下面的代碼適用於任何人有興趣

new_domain = input("Ener domain you would like to block: ") 

print("""zone "%s" IN { 
       type master; 
       file "zones/192.168.1.1.zone"; 
       allow-transfer { none; }; 
       allow-query { my-dmz; }; 
};""" % new_domain) 

我需要避免在此{}使用格式標記,因爲我將不得不處處有奇怪的轉義字符。所以使用傳統的%格式化選項。似乎要做的伎倆。

現在將工作放置在一個while循環中,並將條目寫入文件,因爲我有數百個域添加:)