У меня есть проблема с PcapReader от scapy, которая вызывает MemoryError (без описания), когда считывается много пакетов.Ошибка памяти Scapy PcapReader
Я создал своего собственного читателя, расширив PcapReader, и я перезаписал метод scapy read_all
, поэтому он возвращает generator
вместо того, чтобы загружать все это в список.
class MyPcapReader(PcapReader):
def __init__(self, filename):
PcapReader.__init__(self, filename)
def read_all(self,count=-1):
"""return an iterable of all packets in the pcap file
"""
while count != 0:
count -= 1
p = self.read_packet()
if p is None:
break
yield p
Вот как я retrive данные
reader = MyPcapReader(fname).read_all()
for p in reader:
processSingle(p)
Где может быть проблема? Когда я возвращаюсь к реализации со списком, исключение возникает в read_all. С генератором он поднимается в цикл. Поэтому проблема заключается в итерации цикла, но я не понимаю, где проблема с генератором.
Насколько велика ваша PCAP? – RyPeck