Statt open sollte file verwendet werden.
xrange ist resourcenschonender als range und auch schneller.
Ich hab mir mal erlaubt, Dein Script etwas aufzuräumen.
Code: Alles auswählen
source = file("C:\\_dns.log", "r")
split_list = []
start1 = 213
start2 = 147
start3 = 0
start4 = 0
ende1 = 213
ende2 = 147
ende3 = 0
ende4 = 255
target = file("C:\\newdns.log", "w")
for j in xrange(int(start1), int(ende1) + 1):
for k in xrange(int(start2), int(ende2) + 1):
for l in xrange(int(start3), int(ende3) + 1):
for h in xrange(int(start4), int(ende4) + 1):
current_ip = "%d.%d.%d.%d" % (j, k, l ,h)
for i in source: # geht auch direkt über die Zeilen einer Datei
split_list = i.split(" "))
try:
if split_list[2] != '':
ip = split_list[2]
if current_ip == ip:
target.write(i)
break
else:
ip = split_list[3]
if current_ip == ip:
target.write(i)
break
except: # was willst hier abfangen?
print 'oops' # daß zumindest was ausgegeben wird
target.close()
source.close()
Dookie