关闭 rdpcap 函数 - Scapy

Close rdpcap function - Scapy

我有一个循环遍历大量 pcap 文件的脚本。对于每个 pcap 文件,我需要读取它,然后将一些信息写入 txt 文件。我正在使用 Scapy 的 rdcap 函数。一旦我读完 pcap 文件,有没有办法关闭它?我的脚本有内存泄漏,我担心这可能是罪魁祸首(通过让许多 pcap 文件基本上处于打开状态)

检查 Scapysource code 显示 rdpcap 函数忽略了关闭 pcap 文件:

@conf.commands.register
def rdpcap(filename, count=-1):
    """Read a pcap file and return a packet list
count: read only <count> packets"""
    return PcapReader(filename).read_all(count=count)

我建议您按如下方式实现您自己的此功能版本:

def rdpcap_and_close(filename, count=-1):
    """Read a pcap file, return a packet list and close the file
count: read only <count> packets"""
    pcap_reader = PcapReader(filename)
    packets = pcap_reader.read_all(count=count)
    pcap_reader.close()
    return packets

我已经为这个问题创建了一个问题here

编辑: 问题已在 this changeset 中解决。