Здравствуйте, у меня есть небольшой скрипт на питоне, его задача - считывать данные из TXT-файла и сортировать его в конкретном удаляемом дубликате и удалять бессмысленные данные и переносить их обратно в другой TXT файл этот формат MAC IP номер устройстваОбработка огромного количества данных на маленьком скрипте python
import re
f = open('frame.txt', 'r')
d = open('Result1.txt', 'w')
mac=""
ip=""
phoneName=""
phoneTel=""
lmac=""
lip=""
lphoneName=""
lphoneTel=""
lines=f.readlines()
s=0
p=0
for line in lines:
matchObj = re.search('(?<=Src:)[0-9a-z]{2}:[0-9a-z]{2}:[0-9a-z]{2}:[0-9a-z]{2}:[0-9a-z]{2}:[0-9a-z]{2}', line, re.M|re.I)
if(matchObj):
mac=matchObj.group(0)+"\t"
matchObj = re.search('(?<=Src:)([0-9]+)(?:\.[0-9]+){3}', line, re.M|re.I)
if(matchObj):
ip=matchObj.group(0)+"\t"
if(s==1):
s=0
matchObj = re.search('(?<=Value:)\d+',line,re.M|re.I)
if(matchObj):
phoneName=matchObj.group(0)+"\t"
if(p==1):
p=0
matchObj = re.search('(?<=Value:).+',line,re.M|re.I)
if(matchObj):
phoneTel=matchObj.group(0)+"\t"
matchObj = re.search('(?<=Key: user \(218)', line, re.M|re.I)
if(matchObj):
s=1
matchObj = re.search('(?<=Key: resource \(165)', line, re.M|re.I)
if(matchObj):
p=1
if(mac!="" and ip!="" and phoneName!="" and phoneTel!="" and mac!=lmac and ip!=lip and phoneName!=lphoneName and phoneTel!=lphoneTel):
d.write(mac+" " +ip+" "+ phoneName+" "+ phoneTel)
lmac=mac
lip=ip
lphoneName=phoneName
lphoneTel=phoneTel
d.write("\n")
matchObj = re.search('Frame \d+', line, re.M|re.I)
if(matchObj):
mac=""
ip=""
phoneName=""
phoneTel=""
d.close()
f.close()
здесь код проблема заключается в том, что код нужно обрабатывать огромное количество данных, которые могут достигать 100 Гбайт, и когда я делаю, чтобы программа замерзает и убить себя любую идею как чтобы решить эту проблему, спасибо вам большое!
Звучит как работа для 'awk'. Как выглядит ваш файл? – Blender