0

使用 dpkt 解析 UDP pcap 文件时,收到以下错误消息:

with open('file.pcap', 'rb') as fopen:
    pcap = dpkt.pcap.Reader(fopen)
for timestamp, buf in pcap:
    print (timestamp)

错误:根:检查模块中的内部 Python 错误。以下是此内部错误的回溯。

Traceback(最近一次调用最后一次):ValueError:读取已关闭文件

在处理上述异常的过程中,又出现了一个异常:

Traceback(最近一次调用最后):AttributeError:'ValueError'对象没有属性' render_traceback '

在处理上述异常的过程中,又出现了一个异常:

Traceback(最近一次调用最后一次):AssertionError

4

1 回答 1

2

with open(...) ...离开区块时文件会自动关闭:

with open('file.pcap', 'rb') as fopen:
    # still open here
    pcap = dpkt.pcap.Reader(fopen)
    
# automatically closed here
for timestamp, buf in pcap:
    print (timestamp)

因此,您需要将 pcap 读数放入打开文件的同一块中:

with open('file.pcap', 'rb') as fopen:
    pcap = dpkt.pcap.Reader(fopen)
    for timestamp, buf in pcap:
        print (timestamp)
于 2020-08-05T18:31:54.150 回答