0
我正在寫一個文本文件,但它不能正常工作,因爲我預期。Python - 寫入文件文本的有效方法?
這是我有:
#!/usr/lib/env python
import re
file = open("address.txt","r")
content = file.read()
file.close()
content = content.split('LAN ')[1:]
dic = {}
for lan in content:
dic[int(lan[0])] = lan[1:]
def address(lan_index):
address = re.findall('address\s(.*?)\s',dic[lan_index])
if len(address) > 0:
print 'LAN', lan_index, ":", address[0]
else:
print 'No Address Found!'
return address[0]
ad1 = str(address(1))
new_ad = ad1
var1 = 'ad1'
filedata = None
with open('address.txt', 'r') as file :
filedata = file.read()
filedata = filedata.replace(ad1 , var1)
with open('address.txt', 'w') as file:
file.write(filedata)
這裏是我的文本文件:
#line addresses LAN 1
address 192.168.6.6
network 192.168.6.6
我的問題是,當我想要替換ad1
爲var1
它不會取代只是我address
僅將取代network
以及他們擁有相同的IP。
我的輸出是這樣的:
地址AD1
網絡AD1
是否有一個有效的和可能的方式,以避免這一點,並得到這樣的:
地址ad1
網絡192.168.6.6
如果可能,我將不勝感激。 謝謝
按行讀取文件?只有在包含地址而不是網絡的情況下才更換該行? –
@ cricket_007不是一個壞主意..如果只需要簡單的匹配,regex實際上通常比簡單的字符串操作要慢。正則表達式的好處是靈活性和複雜的模式,而不是速度。 – Aaron