Список не может быть скопирован
Я использую функцию sniff() Scapy, чтобы прослушать пакет из Ethernet. Я храню его в переменной pkt. Позже я хочу сделать копию того же самого, добавив содержимое pkt в другую переменную buffpkt. Первоначально я объявил обе переменные как список, но как только pkt сохранит вывод sniff(), он изменит свой тип на экземпляр. Ниже приведен код.
pkt=[]
buffpkt=[]
pkt=sniff(prn=lambda x:x.sprintf("{IP : %IP.src% %IP.dst%\n\n} "),timeout=5,store=1)
buffpkt=pkt
Я хочу составить большой список всех перехваченных пакетов, добавив результаты в buffpkt, но не могу. Какие-либо предложения?
2 ответа
Просто назначая один список другому, вы просто указываете, что первый список указывает на второй список. Для копирования списка вы можете использовать оператор нарезки, например так:
buffpkt = pkt[:]
Сейчас buffpkt
будет копия.
Использовать стандартную библиотеку copy
скопировать структуры данных в Python: http://docs.python.org/library/copy.html