列表无法复制

时间:2012-08-01 08:21:45

标签: python type-conversion sniffing scapy

我正在使用Scapy的sniff()函数来嗅探来自以太网的数据包。我将它存储在一个名为pkt的变量中。后来我想通过在另一个变量buffpkt中附加pkt的内容来制作相同的副本。最初我将两个变量都声明为列表,但是一旦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 个答案:

答案 0 :(得分:1)

只需将一个列表分配给另一个列表,您只需将第一个列表指向第二个列表即可。要复制列表,您可以使用切片运算符,如下所示:

buffpkt = pkt[:]

现在buffpkt将是副本。

答案 1 :(得分:1)

使用标准库copy在Python中复制数据结构:http://docs.python.org/library/copy.html