私はテキストファイルに書き込んでいますが、期待通りに正しく動作しません。ここで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
は私の問題は、私はvar1
ためad1
を交換したい場合、それは私のaddress
だけではnetwork
を置き換えますを交換する習慣であります彼らは同じIPを持っています。
私の出力はこのようなものです:
アドレスAD1
ネットワークAD1
は、この問題を回避し、このような何かを得るための効率的かつ可能な方法があります:
アドレスad1
ネットワーク192.168.6.6
可能であれば、私は非常に感謝しています。 ありがとう
ファイルを行単位で読み込みますか?ネットワークではなく、アドレスを含む場合にのみ回線を交換しますか? –
@ cricket_007悪い考えではありません。シンプルなマッチだけが必要な場合、正規表現は実際には単純な文字列操作より遅いことがよくあります。正規表現の利点は柔軟性と複雑なパターンであり、スピードではありません。 – Aaron