2015-05-27 59 views
0

我正在嘗試編寫一個小的Python腳本來生成CentOS7 kickstart配置。我有一個骨架配置文件,並且基於某些用戶輸入,腳本會通過將自定義塊插入到骨架中來彈出自定義cfg文件。但是,由於某種原因,字符串比較不起作用。Python字符串比較不適用於匹配行

#!/usr/bin/python 

type = raw_input("Static OR DHCP: ") 
gateway = raw_input("Gateway IP: ") 
nameserver = raw_input("DNS Server: ") 
hostname = raw_input("Hostname: ") 
ipaddr = raw_input("IP Address: ") 

skeleton = open('ks_skeleton.cfg', 'r') 
config = open(hostname + '.cfg', 'w') 

for line in skeleton: 
     if line == "$NETWORK": 
       print("Interting Network values..."); 
       config.write("network --bootproto=" + type + " --device=ens192 --gateway=" + gateway + " --ip=" + ipaddr + " --nameserver=" + nameserver + " --netmask=255.255.255.0 --ipv6=auto --activate\n"); 
       config.write("network --hostname=" + hostname + "\n"); 
     else: 
       config.write(line); 
+3

「不工作」以什麼方式? – TigerhawkT3

回答

0

您從skeleton讀取的行必須在年底新線,所以確切的字符串比較很可能行不通。如果你做line = line.strip()作爲你的循環的第一行,它會從行前的任何文本之前和之後刪除空格,並可能讓你更接近你想要的。

+0

另外,'if line =='$ NETWORK \ n「:'。 – TigerhawkT3

+2

如果你想保留任何空格,並且只是去掉換行符,那麼'line = line.strip('\ n')' –

+0

工作正常!謝謝! – Eroji